Function at 0x446e40
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x55fdf8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push ebp
mov ebp, ecx
push esi
lea eax, [esp + 0x24]
push edi
mov ecx, dword [ebp + 0x80]
xor ebx, ebx
push eax
push ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], ebx
call fcn.004c56f0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [ebp + 0x9c], edx
mov edx, dword [esp + 0x30]
mov dword [ebp + 0xa0], ecx
mov ecx, dword [ebp + 0x80]
add esp, 8
mov dword [ebp + 0xa4], eax
mov dword [ebp + 0x98], edx
call fcn.004ccdc0
xor ecx, ecx
cmp eax, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], ecx
jle 0x446f86
push ecx
mov ecx, dword [ebp + 0x80]
call fcn.004ccd90
mov edi, dword [eax + 0x54]
mov esi, 0x5b6224
mov ecx, edi
mov bl, byte [ecx]
mov dl, bl
cmp bl, byte [esi]
jne 0x446f03
test dl, dl
je 0x446eff
mov bl, byte [ecx + 1]
mov dl, bl
cmp bl, byte [esi + 1]
jne 0x446f03
add ecx, 2
add esi, 2
test dl, dl
jne 0x446edf
xor ecx, ecx
jmp 0x446f08
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x446f5b
mov esi, 0x5b6304
mov ecx, edi
mov bl, byte [ecx]
mov dl, bl
cmp bl, byte [esi]
jne 0x446f37
test dl, dl
je 0x446f33
mov bl, byte [ecx + 1]
mov dl, bl
cmp bl, byte [esi + 1]
jne 0x446f37
add ecx, 2
add esi, 2
test dl, dl
jne 0x446f13
xor ecx, ecx
jmp 0x446f3c
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x446f5b
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
inc ecx
cmp ecx, eax
mov dword [esp + 0x20], ecx
jl 0x446ec9
mov ebx, dword [esp + 0x24]
jmp 0x446f86
mov edx, dword [eax + 8]
mov ecx, 1
sub edx, 3
mov dword [esp + 0x1c], ecx
mov dword [ebp + 0xbc], edx
mov edx, dword [ebp + 0x68]
cmp edx, ecx
mov ebx, eax
jne 0x446f7d
mov dword [esp + 0x14], eax
cmp dword [ebp + 0x6c], ecx
jne 0x446f86
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x6c]
cmp eax, ecx
jge 0x447054
mov ecx, dword [ebp + 0x80]
call fcn.004ccdc0
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x447045
mov edx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x80]
push edx
call fcn.004ccd90
mov esi, dword [ebx + 0x54]
mov edi, eax
mov ecx, dword [edi + 0x54]
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x446feb
test dl, dl
je 0x446fe7
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x446feb
add ecx, 2
add esi, 2
test dl, dl
jne 0x446fc7
xor ecx, ecx
jmp 0x446ff0
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x447015
mov ecx, dword [edi + 8]
mov eax, dword [ebx + 0x10]
sub ecx, 6
cmp ecx, eax
jne 0x447015
mov edx, dword [edi + 4]
mov eax, dword [ebx + 4]
cmp edx, eax
jne 0x447015
mov eax, dword [edi + 0xc]
mov ecx, dword [ebx + 0xc]
cmp eax, ecx
je 0x447026
mov eax, dword [esp + 0x10]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x10], eax
jne 0x446faf
jmp 0x447045
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x68]
inc eax
mov ebx, edi
cmp eax, ecx
mov dword [esp + 0x1c], eax
jne 0x44703c
mov dword [esp + 0x14], edi
cmp eax, dword [ebp + 0x6c]
jne 0x447045
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x6c]
cmp edx, eax
jl 0x446f95
mov ecx, dword [ebp + 0x80]
call fcn.004cc990
mov edi, eax
mov eax, dword [ebp + 0x7c]
xor esi, esi
mov ecx, dword [eax + 0x32c]
test ecx, ecx
jle 0x447090
mov eax, dword [eax + 0x328]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x447084
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [ebp + 0x7c]
inc esi
cmp esi, dword [eax + 0x32c]
jl 0x447070
mov ecx, dword [ebp + 0x7c]
push 0xffffffffffffffff
add ecx, 0x324
push 0
call sub.MFC42.DLL_CObArray::SetSize
mov eax, edi
dec edi
test eax, eax
mov dword [esp + 0x10], edi
je 0x44720e
mov ecx, dword [ebp + 0x80]
push edi
call fcn.004cc960
mov edx, dword [eax + 8]
mov esi, dword [eax + 0x10]
cmp edx, esi
jne 0x44719b
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 8]
lea ecx, [ebx - 3]
cmp edx, ecx
jle 0x44711e
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
add ecx, 3
cmp edx, ecx
jge 0x44711e
mov ecx, dword [ebp + 0xbc]
cmp edx, ecx
je 0x44711e
cmp edx, dword [ebp + 0xa4]
je 0x44711e
mov edi, dword [eax + 0x18]
push edi
mov edi, dword [eax + 0x14]
push edi
mov edi, ecx
sub edi, ebx
sub ecx, ebx
lea esi, [edi + esi + 3]
lea edx, [ecx + edx + 3]
push esi
mov esi, dword [eax + 0xc]
mov eax, dword [eax + 4]
push esi
push edx
push eax
jmp 0x4471f3
cmp edx, esi
jne 0x44719b
mov ecx, dword [ebp + 0xbc]
cmp edx, ecx
je 0x447187
cmp edx, esi
jne 0x44719b
mov ebx, dword [ebp + 0xa4]
cmp edx, ebx
jne 0x44717b
mov edi, dword [eax + 0x18]
push edi
mov edi, dword [eax + 0x14]
push edi
mov edi, ecx
sub edi, ebx
mov ebx, dword [esp + 0x1c]
sub edi, dword [ebx + 8]
mov ebx, dword [esp + 0x20]
mov ebx, dword [ebx + 0x10]
add edi, ebx
lea esi, [edi + esi + 6]
push esi
mov esi, dword [eax + 0xc]
push esi
mov esi, dword [ebp + 0xa4]
sub ecx, esi
mov esi, dword [esp + 0x24]
sub ecx, dword [esi + 8]
add ecx, ebx
lea ecx, [ecx + edx + 6]
mov edx, dword [eax + 4]
push ecx
push edx
jmp 0x4471f3
cmp edx, esi
jne 0x44719b
cmp edx, dword [ebp + 0x9c]
jne 0x44719b
mov ecx, dword [eax + 0x18]
push ecx
mov ecx, dword [eax + 0x14]
push ecx
mov ecx, dword [eax + 0xc]
push esi
push ecx
push edx
mov edx, dword [eax + 4]
push edx
jmp 0x4471f3
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0xc]
cmp ecx, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edi
jne 0x4471fb
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 8]
lea ecx, [ebx - 3]
cmp edx, ecx
jge 0x4471fb
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
lea edi, [ecx + 3]
cmp esi, edi
jl 0x4471fb
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
push edi
mov edi, dword [ebp + 0xa4]
push eax
mov eax, dword [ebp + 0xbc]
sub eax, ebx
sub eax, edi
add eax, ecx
lea ecx, [eax + esi + 6]
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x2c]
push eax
push edx
push ecx
mov ecx, dword [ebp + 0x7c]
call fcn.004cc8d0
mov edi, dword [esp + 0x10]
mov edx, edi
dec edi
test edx, edx
mov dword [esp + 0x10], edi
jne 0x4470b1
mov ecx, dword [ebp + 0x80]
call fcn.004ccdc0
mov edi, eax
mov eax, dword [ebp + 0x7c]
xor esi, esi
mov ecx, dword [eax + 0x340]
test ecx, ecx
jle 0x44724a
mov eax, dword [eax + 0x33c]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x44723e
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [ebp + 0x7c]
inc esi
cmp esi, dword [eax + 0x340]
jl 0x44722a
mov ecx, dword [ebp + 0x7c]
push 0xffffffffffffffff
add ecx, 0x338
push 0
call sub.MFC42.DLL_CObArray::SetSize
mov eax, edi
dec edi
test eax, eax
mov dword [esp + 0x10], edi
je 0x447573
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebp + 0x80]
call fcn.004ccd90
mov ebx, eax
mov edi, 0x5b62bc
mov ecx, dword [ebx + 0x54]
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x4472ab
test al, al
je 0x4472a7
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x4472ab
add esi, 2
add edi, 2
test al, al
jne 0x447287
xor eax, eax
jmp 0x4472b0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4474d7
mov edi, 0x5b630c
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x4472e3
test al, al
je 0x4472df
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x4472e3
add esi, 2
add edi, 2
test al, al
jne 0x4472bf
xor eax, eax
jmp 0x4472e8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4474d7
mov edi, 0x5b6314
mov esi, ecx
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x44731b
test al, al
je 0x447317
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x44731b
add esi, 2
add edi, 2
test al, al
jne 0x4472f7
xor eax, eax
jmp 0x447320
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4474d7
mov edi, 0x5b62b4
mov esi, ecx
mov cl, byte [esi]
mov dl, byte [edi]
mov al, cl
cmp cl, dl
jne 0x447357
test al, al
je 0x447353
mov dl, byte [esi + 1]
mov cl, byte [edi + 1]
mov al, dl
cmp dl, cl
jne 0x447357
add esi, 2
add edi, 2
test al, al
jne 0x44732f
xor eax, eax
jmp 0x44735c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x447418
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebx + 0x80]
mov edx, dword [ebx + 0x64]
push eax
push ecx
mov eax, dword [ebx + 0x68]
push edx
mov edx, dword [ebx + 0x58]
sub esp, 0x3c
lea esi, [ebx + 0x14]
mov ecx, 0xf
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x5c]
push eax
mov eax, dword [ebx + 0x7c]
push ecx
mov ecx, dword [ebx + 0x78]
push edx
push eax
push ecx
push ecx
lea eax, [ebx + 0x54]
mov ecx, esp
mov dword [esp + 0x84], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
lea edx, [ebx + 0x50]
mov ecx, esp
mov dword [esp + 0x84], esp
push edx
mov dword [esp + 0xa8], 1
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp + 0xa4]
mov edi, dword [ebx + 0x10]
mov esi, dword [esp + 0x7c]
mov ecx, dword [ecx + 8]
mov edx, dword [ebp + 0xbc]
mov esi, dword [esi + 0x10]
sub edi, eax
sub edi, ecx
mov dword [esp + 0xa4], 0xffffffff
add edi, edx
lea edi, [edi + esi + 6]
push edi
mov edi, dword [ebx + 0xc]
push edi
mov edi, dword [ebx + 8]
sub edi, eax
mov eax, dword [ebx + 4]
sub edi, ecx
add edi, edx
lea edx, [edi + esi + 6]
push edx
push eax
jmp 0x447558
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 8]
cmp ecx, dword [edx + 8]
jl 0x447560
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 0x10]
cmp eax, dword [ecx + 0x10]
jg 0x447560
mov edx, dword [ebx + 0x84]
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x64]
push edx
mov edx, dword [ebx + 0x68]
push eax
mov eax, dword [ebx + 0x5c]
push ecx
sub esp, 0x3c
lea esi, [ebx + 0x14]
mov ecx, 0xf
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x58]
push edx
mov edx, dword [ebx + 0x7c]
push eax
mov eax, dword [ebx + 0x78]
push ecx
push edx
push eax
push ecx
lea eax, [ebx + 0x54]
mov ecx, esp
mov dword [esp + 0x84], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
lea edx, [ebx + 0x50]
mov ecx, esp
mov dword [esp + 0x84], esp
push edx
mov dword [esp + 0xa8], 2
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [esp + 0x78]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0xa4], 0xffffffff
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 0xbc]
sub edx, ecx
lea edx, [edx + eax + 3]
sub eax, ecx
mov ecx, dword [ebx + 8]
push edx
mov edx, dword [ebx + 0xc]
push edx
lea edx, [eax + ecx + 3]
mov eax, dword [ebx + 4]
push edx
push eax
jmp 0x447558
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x80]
mov eax, dword [ebx + 0x64]
push ecx
push edx
push eax
mov edx, dword [ebx + 0x5c]
sub esp, 0x3c
mov eax, dword [ebx + 0x58]
lea esi, [ebx + 0x14]
mov ecx, 0xf
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x68]
push ecx
mov ecx, dword [ebx + 0x7c]
push edx
mov edx, dword [ebx + 0x78]
push eax
push ecx
push edx
push ecx
lea eax, [ebx + 0x54]
mov ecx, esp
mov dword [esp + 0x84], esp
push eax
call sub.MFC42.DLL_CString::CString_2
push ecx
lea eax, [ebx + 0x50]
mov ecx, esp
mov dword [esp + 0x84], esp
push eax
mov dword [esp + 0xa8], 0
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
push ecx
mov ecx, dword [ebx + 4]
push edx
push eax
mov dword [esp + 0xb0], 0xffffffff
push ecx
mov ecx, dword [ebp + 0x7c]
call fcn.004ccc50
mov eax, dword [esp + 0x10]
mov edx, eax
dec eax
test edx, edx
mov dword [esp + 0x10], eax
jne 0x44726b
mov eax, dword [0x5c0450]
mov ecx, dword [0x5c02c0]
sub eax, ecx
mov ecx, dword [ebp + 0x7c]
inc eax
mov dword [ecx + 0x360], eax
mov edx, dword [ebp + 0x80]
mov eax, dword [ebp + 0x7c]
mov ecx, dword [edx + 0x364]
mov dword [eax + 0x364], ecx
mov edx, dword [ebp + 0x80]
mov ecx, dword [ebp + 0x7c]
add edx, 0x368
push edx
add ecx, 0x368
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [ebp + 0x80]
mov ecx, dword [ebp + 0x7c]
add eax, 0x36c
add ecx, 0x36c
push eax
call sub.MFC42.DLL_CString::operator_2
mov ecx, dword [ebp + 0x80]
add ecx, 0x370
push ecx
mov ecx, dword [ebp + 0x7c]
add ecx, 0x370
call sub.MFC42.DLL_CString::operator_2
mov edx, dword [ebp + 0x80]
mov ecx, dword [ebp + 0x7c]
add edx, 0x374
add ecx, 0x374
push edx
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [ebp + 0x80]
mov ecx, dword [ebp + 0x7c]
add eax, 0x378
add ecx, 0x378
push eax
call sub.MFC42.DLL_CString::operator_2
mov ecx, dword [ebp + 0x80]
add ecx, 0x37c
push ecx
mov ecx, dword [ebp + 0x7c]
add ecx, 0x37c
call sub.MFC42.DLL_CString::operator_2
mov edx, dword [ebp + 0x80]
mov ecx, dword [ebp + 0x7c]
add edx, 0x380
add ecx, 0x380
push edx
call sub.MFC42.DLL_CString::operator_2
mov eax, dword [ebp + 0x80]
mov ecx, dword [ebp + 0x7c]
add eax, 0x384
add ecx, 0x384
push eax
call sub.MFC42.DLL_CString::operator_2
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0xbc], 0xffffffff
call fcn.004ccdc0
mov edi, dword [ebp + 0x84]
mov ecx, dword [0x5c0278]
mov ebx, dword [0x5c0280]
sub edi, ecx
sub edi, ebx
mov ecx, eax
dec eax
mov dword [esp + 0x10], 0
test ecx, ecx
mov dword [esp + 0x1c], eax
je 0x447950
mov ecx, dword [ebp + 0x7c]
push eax
call fcn.004ccd90
mov ecx, eax
mov eax, 0x5b6224
mov esi, dword [ecx + 0x54]
mov bl, byte [esi]
mov dl, bl
cmp bl, byte [eax]
jne 0x4476ea
test dl, dl
je 0x4476e6
mov bl, byte [esi + 1]
mov dl, bl
cmp bl, byte [eax + 1]
jne 0x4476ea
add esi, 2
add eax, 2
test dl, dl
jne 0x4476c6
xor eax, eax
jmp 0x4476ef
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x44772c
mov esi, dword [ecx + 0x54]
mov eax, 0x5b6304
mov bl, byte [esi]
mov dl, bl
cmp bl, byte [eax]
jne 0x44771f
test dl, dl
je 0x44771b
mov bl, byte [esi + 1]
mov dl, bl
cmp bl, byte [eax + 1]
jne 0x44771f
add esi, 2
add eax, 2
test dl, dl
jne 0x4476fb
xor eax, eax
jmp 0x447724
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x447812
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x44781e
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 8]
sub edx, esi
mov esi, dword [ebp + 0x2e8]
add edx, 6
mov ebx, ecx
add esi, edx
mov dword [esp + 0x10], ebx
mov dword [ebp + 0x2e8], esi
mov esi, dword [ecx + 8]
add esi, 0xfffffffd
mov dword [ebp + 0x94], esi
mov eax, dword [0x5c01a4]
lea edx, [eax + 0x23]
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [esi*8]
sub eax, esi
mov dword [esp + 0x24], edx
neg eax
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x66666667
shl edx, 1
sub edx, esi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x24]
sub edx, eax
lea eax, [edi + edi*4]
lea esi, [edx + eax*2]
mov edx, dword [ebp + 0x2e8]
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, esi
jge 0x447935
mov dword [ebp + 0xa8], ecx
mov dword [ebp + 0xac], ecx
mov ecx, dword [ecx + 8]
sub ecx, 3
mov dword [ebp + 0xbc], ecx
jmp 0x447935
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x447935
mov edx, dword [ebx + 4]
mov eax, dword [ecx + 4]
cmp edx, eax
jne 0x447935
mov eax, dword [ebx + 0xc]
mov edx, dword [ecx + 0xc]
cmp eax, edx
jne 0x447935
mov eax, dword [ecx + 0x54]
mov esi, dword [ebx + 0x54]
mov bl, byte [esi]
mov dl, bl
cmp bl, byte [eax]
jne 0x447864
test dl, dl
je 0x447860
mov bl, byte [esi + 1]
mov dl, bl
cmp bl, byte [eax + 1]
jne 0x447864
add esi, 2
add eax, 2
test dl, dl
jne 0x447840
xor eax, eax
jmp 0x447869
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x447931
mov ebx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
cmp dword [ebx + 0x10], eax
jge 0x447935
mov edx, dword [ecx + 0x10]
mov ebx, dword [ebp + 0x94]
sub edx, eax
mov eax, dword [ebp + 0x2e8]
add edx, 6
mov dword [esp + 0x10], ecx
add eax, edx
mov dword [ebp + 0x2e8], eax
mov esi, eax
mov eax, dword [0x5c01a4]
lea edx, [eax + 0x23]
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [ebx*8]
sub eax, ebx
mov dword [esp + 0x24], edx
neg eax
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x66666667
shl edx, 1
sub edx, ebx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x24]
sub edx, eax
lea eax, [edi + edi*4]
lea ebx, [edx + eax*2]
lea eax, [esi*8]
sub eax, esi
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x66666667
lea esi, [esi + edx*2]
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, ebx
jge 0x447931
mov dword [ebp + 0xa8], ecx
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x1c], eax
jne 0x4476b3
test ebx, ebx
jne 0x447bc4
mov ecx, dword [ebp + 0x7c]
call fcn.004ccdc0
mov edx, eax
dec eax
test edx, edx
mov dword [esp + 0x1c], eax
je 0x447bc4
mov ecx, dword [ebp + 0x7c]
push eax
call fcn.004ccd90
mov ecx, eax
mov eax, 0x5b62fc
mov esi, dword [ecx + 0x54]
mov bl, byte [esi]
mov dl, bl
cmp bl, byte [eax]
jne 0x44799e
test dl, dl
je 0x44799a
mov bl, byte [esi + 1]
mov dl, bl
cmp bl, byte [eax + 1]
jne 0x44799e
add esi, 2
add eax, 2
test dl, dl
jne 0x44797a
xor eax, eax
jmp 0x4479a3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x447a8a
test eax, eax
jne 0x447a92
mov eax, dword [ecx + 0x10]
mov ebx, dword [ecx + 8]
mov edx, dword [ebp + 0x2e8]
sub eax, ebx
add eax, 6
mov dword [esp + 0x10], ecx
add edx, eax
mov dword [ebp + 0x2e8], edx
mov esi, dword [ecx + 8]
add esi, 0xfffffffd
mov dword [ebp + 0x94], esi
mov edx, dword [0x5c01a4]
add edx, 0x23
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [esi*8]
sub eax, esi
mov ebx, edx
neg eax
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x66666667
shl edx, 1
sub edx, esi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [edi + edi*4]
sub edx, ebx
lea esi, [edx + eax*2]
mov edx, dword [ebp + 0x2e8]
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, esi
jge 0x447bb1
mov dword [ebp + 0xa8], ecx
mov dword [ebp + 0xac], ecx
mov ecx, dword [ecx + 8]
sub ecx, 3
mov dword [ebp + 0xbc], ecx
jmp 0x447bb1
test eax, eax
je 0x447bb1
mov edx, dword [eax + 4]
mov esi, dword [ecx + 4]
cmp edx, esi
je 0x447aaa
mov eax, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
cmp eax, edx
jne 0x447bb1
mov esi, dword [ecx + 0x54]
mov eax, 0x5b62fc
mov bl, byte [esi]
mov dl, bl
cmp bl, byte [eax]
jne 0x447ad6
test dl, dl
je 0x447ad2
mov bl, byte [esi + 1]
mov dl, bl
cmp bl, byte [eax + 1]
jne 0x447ad6
add esi, 2
add eax, 2
test dl, dl
jne 0x447ab2
xor eax, eax
jmp 0x447adb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x447bb1
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov edx, dword [edx + 0x10]
cmp edx, eax
jge 0x447bb1
mov esi, eax
sub esi, edx
cmp esi, 6
jne 0x447bb1
mov edx, dword [ecx + 0x10]
mov ebx, dword [ebp + 0x94]
sub edx, eax
mov eax, dword [ebp + 0x2e8]
add edx, esi
mov dword [esp + 0x10], ecx
add eax, edx
mov dword [ebp + 0x2e8], eax
mov esi, eax
mov eax, dword [0x5c01a4]
lea edx, [eax + 0x23]
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [ebx*8]
sub eax, ebx
mov dword [esp + 0x24], edx
neg eax
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x66666667
shl edx, 1
sub edx, ebx
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x24]
sub edx, eax
lea eax, [edi + edi*4]
lea ebx, [edx + eax*2]
lea eax, [esi*8]
sub eax, esi
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x66666667
lea esi, [esi + edx*2]
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, ebx
jge 0x447bb1
mov dword [ebp + 0xa8], ecx
mov eax, dword [esp + 0x1c]
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x1c], eax
jne 0x447967
mov edx, dword [0x5c01a4]
mov esi, dword [ebp + 0x94]
lea ecx, [edx + 6]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, 0x66666667
imul ecx
lea eax, [esi*8]
mov ecx, edx
sub eax, esi
sar ecx, 5
neg eax
mov edx, ecx
shr edx, 0x1f
lea eax, [eax + eax*2]
add ecx, edx
lea edx, [eax + eax*4]
mov eax, 0x66666667
shl edx, 1
sub edx, esi
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov esi, edx
sub esi, ecx
lea ecx, [edi + edi*4 - 0x32]
lea ecx, [esi + ecx*2]
test ecx, ecx
jle 0x447cbf
mov edx, dword [ebp + 0x2e8]
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebx, edx
mov eax, ebx
cdq
idiv ecx
test edx, edx
jne 0x447c6c
mov eax, ebx
cdq
idiv ecx
jmp 0x447cb9
test ecx, ecx
jle 0x447cbf
mov edx, dword [ebp + 0x2e8]
lea eax, [edx*8]
sub eax, edx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x84]
sub eax, 0xa
mov ebx, edx
lea edx, [eax + eax*4]
mov eax, ebx
lea esi, [esi + edx*2]
cdq
idiv esi
test edx, edx
je 0x447cbf
mov eax, ebx
cdq
idiv ecx
inc eax
mov dword [ebp + 0x8c], eax
mov eax, dword [ebp + 0xac]
mov edx, dword [ebp + 0xa8]
mov ecx, dword [eax + 8]
sub ecx, 3
mov dword [ebp + 0xc8], ecx
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp + 0x8c]
add eax, 3
mov dword [ebp + 0x1b8], eax
mov eax, 1
cmp ecx, eax
mov dword [esp + 0x1c], eax
jle 0x447ee4
lea ecx, [ebp + 0xcc]
mov dword [esp + 0x18], ecx
mov eax, dword [ebp + 0xa8]
test eax, eax
mov dword [ebp + 0xac], eax
je 0x447ece
mov ecx, dword [ebp + 0x7c]
call fcn.004ccdc0
mov eax, dword [0x5c01a4]
mov edx, dword [ebp + 0xac]
mov dword [esp + 0x20], edx
lea ebx, [edi + edi*4]
lea ecx, [eax + 0x23]
xor esi, esi
shl ebx, 1
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
lea edx, [eax + eax*4]
mov eax, 0x66666667
lea ecx, [ecx + edx*2]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, edx
mov edx, dword [ebp + 0x94]
mov dword [esp + 0x24], ecx
lea eax, [edx*8]
sub eax, edx
neg eax
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x66666667
shl ecx, 1
sub ecx, edx
imul ecx
mov eax, dword [esp + 0x24]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sub edx, eax
add edx, ebx
js 0x447e64
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 0x7c]
push ecx
push edx
call fcn.004c56a0
add esp, 8
test eax, eax
je 0x447e64
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 8]
sub ecx, edx
mov dword [ebp + 0xa8], eax
mov edx, dword [0x5c01a4]
mov dword [esp + 0x20], eax
lea esi, [esi + ecx + 6]
lea ecx, [edx + 0x23]
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, edx
mov edx, dword [ebp + 0x94]
mov dword [esp + 0x24], ecx
lea eax, [edx*8]
sub eax, edx
neg eax
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x66666667
shl ecx, 1
sub ecx, edx
imul ecx
sar edx, 5
mov eax, edx
mov ecx, dword [esp + 0x24]
shr eax, 0x1f
add edx, eax
lea eax, [esi*8]
sub eax, esi
sub edx, ecx
add edx, ebx
lea eax, [eax + eax*2]
mov dword [esp + 0x24], edx
lea eax, [eax + eax*4]
lea ecx, [esi + eax*2]
mov eax, 0x66666667
imul ecx
mov eax, dword [esp + 0x24]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, eax
jle 0x447d9c
mov ecx, dword [ebp + 0xac]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
add edx, 3
mov dword [eax], edx
mov ecx, dword [ebp + 0xa8]
mov ecx, dword [ecx + 0x10]
add ecx, 3
mov dword [eax + 0xf0], ecx
mov edx, dword [ebp + 0x8c]
dec edx
cmp esi, edx
jne 0x447ea1
cmp dword [eax], ecx
jne 0x447ea1
mov dword [ebp + 0x8c], edx
add eax, 4
inc esi
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x8c]
cmp esi, eax
mov dword [esp + 0x1c], esi
jl 0x447d04
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
push 0x2010
push 0x5b6164
push 0x5b6338
mov ecx, ebp
call sub.MFC42.DLL_CWnd::MessageBoxA
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x34
ret