Function at 0x40aa90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
test byte [esp + 0x84], 1
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
jne 0x40ac71
mov eax, dword [esp + 0x88]
cmp eax, 8
je 0x40b531
ja 0x40ab70
cmp eax, 4
je 0x40b463
ja 0x40ac86
cmp eax, 2
je 0x40baa4
ja 0x40ba85
cmp eax, 1
jne 0x40ac71
cmp ebp, 3
jbe 0x40c571
mov dword [esp], 0x10
call fcn.00401a90
mov esi, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], edi
mov dword [esp + 8], 2
mov dword [esp], eax
call fcn.00402750
mov dword [esi], eax
lea eax, [edi + 2]
mov dword [esp + 8], 2
add edi, 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov dword [esi + 4], eax
lea eax, [ebp - 4]
mov dword [esi + 0xc], edi
mov dword [esi + 8], eax
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 3
mov dword [eax + 4], esi
jmp 0x40ac7c
cmp eax, 0xc
je 0x40b2dd
ja 0x40ac54
cmp eax, 0xa
je 0x40bae2
ja 0x40bac3
cmp ebp, 7
mov dword [esp + 0x5c], 0
jbe 0x40c582
lea eax, [ebp - 8]
lea ebp, [esp + 0x5c]
shr eax, 3
lea esi, [edi + eax*8 + 8]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x80]
jmp 0x40abcd
add edi, 8
cmp dword [esp + 0x28], edi
je 0x40c582
mov dword [esp], 0x10
call fcn.00401a90
mov dword [esp + 8], 2
mov ebx, eax
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00402750
mov dword [ebx + 4], eax
lea eax, [edi + 2]
mov dword [esp + 8], 2
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00402750
mov dword [ebx + 8], eax
lea eax, [edi + 4]
mov dword [esp + 8], 2
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00402750
test byte [ebx + 4], 0x80
mov dword [ebx + 0xc], eax
mov dword [ebx], 0
mov dword [ebp], ebx
mov ebp, ebx
je 0x40abc0
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 1
mov eax, dword [esp + 0x5c]
mov dword [ebx + 4], eax
jmp 0x40ac7c
cmp eax, 0x10
je 0x40b656
cmp eax, 0xf1
je 0x40b550
cmp eax, 0xe
je 0x40b13f
mov edx, ebp
mov eax, edi
call fcn.0040a3c0
mov ebx, eax
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 6
je 0x40bc58
ja 0x40bb1f
cmp ebp, 0x11
jbe 0x40c394
mov dword [esp], 0x44
call fcn.00401a90
mov dword [esp + 0x28], eax
mov esi, eax
lea eax, [edi + 2]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
cmp eax, 0xffff
je 0x40bdd7
mov eax, dword [esp + 0x80]
mov dword [esi + 0x3c], 0
mov ebx, 0x12
mov dword [esp + 8], 4
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.004027d0
mov dword [esi], eax
lea eax, [edi + 4]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov ecx, 0x10
mov dword [esi + 4], eax
mov edx, 0xe
mov esi, 0xc
mov dword [esp + 0x2c], 0xa
mov eax, 8
add eax, edi
mov dword [esp + 8], 2
mov dword [esp + 0x38], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
add esi, edi
mov dword [esp + 0x30], ecx
mov dword [esp], eax
call fcn.00402750
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], 2
add eax, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov ecx, dword [esp + 0x28]
mov dword [ecx + 8], eax
mov dword [esp + 4], esi
mov esi, dword [esp + 0x80]
mov dword [esp + 8], 2
mov dword [esp], esi
call fcn.00402750
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x80]
add edx, edi
mov dword [esp + 4], edx
mov dword [esp + 8], 2
mov dword [esp], eax
call fcn.00402750
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 2
add ecx, edi
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00402750
mov dword [esi + 0x14], eax
mov eax, ebp
lea ecx, [edi + ebx]
sub eax, ebx
lea edx, [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a9f0
add ebx, eax
mov dword [esp + 0x5c], eax
mov eax, ebp
sub eax, ebx
lea ecx, [edi + ebx]
lea edx, [esi + 0x24]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a9f0
add ebx, eax
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x5c]
lea edx, [edi + ebx]
mov ecx, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x80]
sub ecx, ebx
call fcn.0040a410
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x5c]
test eax, eax
lea edx, [ebx + eax*2 + 2]
jne 0x40ae6a
mov dword [esi + 0x30], 0
mov eax, dword [esp + 0x28]
test byte [eax], 0x40
jne 0x40c19f
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], 0
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x40ae9b
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov byte [eax + 9], 1
mov eax, dword [esp + 0x28]
mov dword [eax + 0x40], 0
add eax, 0x40
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x40bf3f
mov dword [esp + 0x2c], 0
mov esi, edx
mov dword [esp + 0x94], ebp
jmp 0x40aefa
mov dword [ebx + 0x38], 0
mov eax, dword [esp + 0x30]
add dword [esp + 0x2c], 1
mov dword [ebx], 0
mov dword [esp + 0x30], ebx
mov dword [eax], ebx
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x34], eax
je 0x40bf3f
mov dword [esp], 0x40
add esi, 3
call fcn.00401a90
mov ebx, eax
mov eax, dword [esp + 0x28]
and esi, 0xfffffffc
mov ebp, dword [eax + 0x3c]
test ebp, ebp
je 0x40bee0
lea ebp, [esi + 0xc]
cmp dword [esp + 0x94], ebp
jb 0x40c5d7
lea eax, [edi + esi]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x3c], eax
lea eax, [edi + esi + 4]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0xc], eax
lea eax, [edi + esi + 8]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0x3c]
xor eax, eax
test esi, esi
lea esi, [ebp + 0xa]
setne al
lea eax, [esi + eax*2]
cmp dword [esp + 0x94], eax
jb 0x40c5c6
lea eax, [edi + ebp]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov dword [ebx + 0x10], eax
lea eax, [edi + ebp + 2]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov dword [ebx + 0x14], eax
lea eax, [edi + ebp + 4]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov dword [ebx + 0x18], eax
lea eax, [edi + ebp + 6]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x40beb0
lea eax, [edi + ebp + 8]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x3c]
test edx, edx
je 0x40b079
lea esi, [ebp + 0xc]
mov eax, dword [esp + 0x94]
lea ecx, [edi + esi]
lea edx, [ebx + 0x20]
sub eax, esi
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a9f0
add esi, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x94]
lea ecx, [edi + esi]
lea edx, [ebx + 0x2c]
sub eax, esi
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a9f0
lea ebp, [esi + eax]
mov dword [esp + 0x5c], eax
lea esi, [ebp + 2]
cmp dword [esp + 0x94], esi
jb 0x40c5b5
lea eax, [edi + ebp]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
test eax, eax
je 0x40aed0
add ebp, 5
and ebp, 0xfffffffc
lea esi, [eax + ebp]
cmp dword [esp + 0x94], esi
jb 0x40c493
mov dword [esp], 0x10
mov dword [esp + 0x38], eax
add ebp, edi
call fcn.00401a90
mov edx, dword [esp + 0x38]
mov dword [ebx + 0x38], eax
mov dword [eax], 0
mov dword [eax + 4], 4
mov dword [eax + 0xc], ebp
mov dword [eax + 8], edx
jmp 0x40aed7
cmp ebp, 5
jbe 0x40c4a4
lea eax, [edi + 2]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
cmp eax, 1
mov ebx, eax
jne 0x40c4c6
lea eax, [edi + 4]
mov dword [esp + 8], 2
sub ebp, 6
lea ebx, [edi + 6]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
test eax, eax
mov dword [esp + 0x5c], 0
jle 0x40bea2
cmp ebp, 0xd
jbe 0x40c4b5
imul eax, eax, 0xe
mov edx, ebp
lea eax, [edi + eax + 6]
lea edi, [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov ebp, edi
mov edi, dword [esp + 0x80]
jmp 0x40b1d9
cmp edx, 0xd
jbe 0x40c4b5
mov dword [esp], 0x18
mov dword [esp + 0x28], edx
call fcn.00401a90
mov dword [esp + 4], ebx
mov esi, eax
mov dword [esp + 8], 1
mov dword [esp], edi
call fcn.00402710
mov byte [esi + 4], al
lea eax, [ebx + 1]
mov dword [esp + 8], 1
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00402710
mov byte [esi + 5], al
lea eax, [ebx + 2]
mov dword [esp + 8], 1
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00402710
mov byte [esi + 6], al
lea eax, [ebx + 4]
mov dword [esp + 8], 2
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00402750
mov dword [esi + 8], eax
lea eax, [ebx + 6]
mov dword [esp + 8], 2
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00402750
mov dword [esi + 0xc], eax
lea eax, [ebx + 8]
mov dword [esp + 8], 4
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004027d0
mov dword [esi + 0x10], eax
lea eax, [ebx + 0xc]
mov dword [esp + 8], 2
mov dword [esp], edi
add ebx, 0xe
mov dword [esp + 4], eax
call fcn.00402750
mov edx, dword [esp + 0x28]
mov dword [esi + 0x14], eax
mov dword [esi], 0
mov dword [ebp], esi
mov ebp, esi
sub edx, 0xe
cmp ebx, dword [esp + 0x2c]
jne 0x40b1d0
mov esi, dword [esp + 0x5c]
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 9
mov dword [eax + 4], esi
jmp 0x40ac7c
cmp ebp, 5
jbe 0x40c507
lea eax, [edi + 2]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
cmp eax, 2
mov ebx, eax
jne 0x40c4ef
lea eax, [edi + 4]
mov dword [esp + 8], 2
sub ebp, 6
lea ebx, [edi + 6]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
test eax, eax
mov dword [esp + 0x5c], 0
jle 0x40bea9
cmp ebp, 0xd
jbe 0x40c4de
imul eax, eax, 0xe
mov edx, ebp
lea eax, [edi + eax + 6]
lea edi, [esp + 0x5c]
mov dword [esp + 0x2c], eax
mov ebp, edi
mov edi, dword [esp + 0x80]
jmp 0x40b379
cmp edx, 0xd
jbe 0x40c4de
mov dword [esp], 0x1c
mov dword [esp + 0x28], edx
call fcn.00401a90
mov dword [esp + 4], ebx
mov esi, eax
mov dword [esp + 8], 2
mov dword [esp], edi
call fcn.00402750
mov dword [esi + 4], eax
lea eax, [ebx + 2]
mov dword [esp + 8], 2
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00402750
mov dword [esi + 8], eax
lea eax, [ebx + 4]
mov dword [esp + 8], 2
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00402750
mov dword [esi + 0xc], eax
lea eax, [ebx + 6]
mov dword [esp + 8], 2
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00402750
mov dword [esi + 0x10], eax
lea eax, [ebx + 8]
mov dword [esp + 8], 4
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004027d0
mov dword [esi + 0x14], eax
lea eax, [ebx + 0xc]
mov dword [esp + 8], 2
mov dword [esp], edi
add ebx, 0xe
mov dword [esp + 4], eax
call fcn.00402750
mov edx, dword [esp + 0x28]
mov dword [esi + 0x18], eax
mov dword [esi], 0
mov dword [ebp], esi
mov ebp, esi
sub edx, 0xe
cmp ebx, dword [esp + 0x2c]
jne 0x40b370
mov esi, dword [esp + 0x5c]
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 4
mov dword [eax + 4], esi
jmp 0x40ac7c
mov dword [esp], 0x24
call fcn.00401a90
mov dword [eax], 0xa
mov dword [esp], 8
mov ebx, eax
call fcn.00401a90
cmp ebp, 1
mov esi, eax
mov dword [ebx + 4], eax
jbe 0x40c5a4
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 2
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00402750
test eax, eax
je 0x40bd9a
cmp eax, 1
jne 0x40c3c7
cmp ebp, 7
jbe 0x40c3b6
lea eax, [edi + 4]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [esi + 4], eax
lea eax, [edi + 2]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
lea edx, [eax + 4]
cmp ebp, edx
jbe 0x40c3a5
lea ecx, [ebp - 4]
add edx, edi
sub ecx, eax
lea eax, [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a800
mov dword [esi], eax
jmp 0x40ac7c
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 6
mov dword [eax + 8], edi
mov dword [eax + 4], ebp
jmp 0x40ac7c
mov dword [esp], 0x10
xor ebp, ebp
call fcn.00401a90
mov esi, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], edi
mov dword [esp + 8], 4
mov dword [esp], eax
call fcn.004027d0
mov dword [esi], eax
lea eax, [edi + 4]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [esi + 4], eax
lea eax, [edi + 8]
mov dword [esp + 8], 4
add edi, 0xc
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
test eax, eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0
je 0x40b635
lea esi, [esi]
mov dword [esp], 0x14
call fcn.00401a90
and byte [eax + 8], 0xfe
mov ebx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], edi
mov dword [esp + 8], 4
add edi, 4
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0xc], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx], 0
mov dword [ebx + 4], 0
test ecx, ecx
jne 0x40b622
jmp 0x40b651
mov ecx, eax
mov eax, dword [ecx]
test eax, eax
jne 0x40b620
mov dword [ebx + 4], ecx
mov dword [ecx], ebx
add ebp, 1
cmp ebp, dword [esi + 8]
jb 0x40b5d0
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 0x16
mov dword [eax + 4], esi
jmp 0x40ac7c
mov dword [esi + 0xc], ebx
jmp 0x40b62d
lea eax, [esp + 0x4c]
mov dword [esp + 4], 0
mov dword [esp], str.VS_VERSION_INFO
mov ecx, ebp
mov edx, edi
mov dword [esp + 0x14], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
call fcn.0040a6b0
mov ebx, dword [esp + 0x40]
cmp ebp, ebx
jb 0x40c3ff
mov ebx, dword [esp + 0x48]
test ebx, ebx
jne 0x40c3e7
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov esi, ebp
add edi, eax
sub esi, eax
test ebx, ebx
je 0x40bdca
cmp ebx, 0x34
jne 0x40c42c
cmp esi, 0x33
jbe 0x40c41b
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 4
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.004027d0
cmp eax, 0xfeef04bd
mov ebx, eax
jne 0x40c47b
lea eax, [edi + 4]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
test eax, 0xfffeffff
mov ebx, eax
jne 0x40c463
mov dword [esp], 0x2c
sub esi, 0x34
call fcn.00401a90
mov ebx, eax
mov dword [esp + 0x3c], eax
lea eax, [edi + 8]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx], eax
lea eax, [edi + 0xc]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 4], eax
lea eax, [edi + 0x10]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 8], eax
lea eax, [edi + 0x14]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0xc], eax
lea eax, [edi + 0x18]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x10], eax
lea eax, [edi + 0x1c]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x14], eax
lea eax, [edi + 0x20]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x18], eax
lea eax, [edi + 0x24]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x1c], eax
lea eax, [edi + 0x28]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x20], eax
lea eax, [edi + 0x2c]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x24], eax
lea eax, [edi + 0x30]
mov dword [esp + 8], 4
add edi, 0x34
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x28], eax
test esi, esi
mov dword [esp + 0x50], 0
je 0x40c45c
cmp esi, 7
jbe 0x40ba74
lea eax, [esp + 0x50]
mov dword [esp + 0x38], eax
nop
lea esi, [esi]
mov dword [esp], 0x10
call fcn.00401a90
mov dword [esp + 0x34], eax
lea eax, [edi + 6]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
cmp eax, 0x53
je 0x40bf7f
cmp eax, 0x56
jne 0x40c341
mov eax, dword [esp + 0x34]
mov ecx, esi
mov edx, edi
mov dword [eax + 4], 1
lea eax, [esp + 0x4c]
mov dword [esp + 4], 0
mov dword [esp], 0x4c24a3
mov dword [esp + 0x14], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
call fcn.0040a6b0
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x40c444
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x34]
mov dword [esp], 0
add edi, eax
sub esi, eax
lea eax, [esp + 0x4c]
mov ecx, esi
mov edx, edi
lea ebp, [ebx + 0xc]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x40]
mov dword [esp + 8], eax
mov eax, ebx
add eax, 8
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
call fcn.0040a6b0
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0xc], 0
add edi, eax
sub esi, eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40ba4f
cmp esi, 3
jbe 0x40c383
mov dword [esp], 0xc
sub esi, 4
call fcn.00401a90
mov ebx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], edi
mov dword [esp + 8], 2
mov dword [esp], eax
call fcn.00402750
mov dword [ebx + 4], eax
lea eax, [edi + 2]
mov dword [esp + 8], 2
add edi, 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov dword [ebx], 0
mov dword [ebx + 8], eax
mov dword [ebp], ebx
mov ebp, ebx
mov ebx, dword [esp + 0x44]
cmp ebx, 3
jbe 0x40c36b
sub ebx, 4
test ebx, ebx
mov dword [esp + 0x44], ebx
jne 0x40b9d0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
test esi, esi
mov dword [eax], 0
mov dword [esp + 0x38], eax
mov dword [ecx], eax
je 0x40c30a
cmp esi, 7
ja 0x40b8d0
mov dword [esp], str.version_var_info
call fcn.004a5954
call fcn.00409c90
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 8
mov dword [eax + 8], edi
mov dword [eax + 4], ebp
jmp 0x40ac7c
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 2
mov dword [eax + 8], edi
mov dword [eax + 4], ebp
jmp 0x40ac7c
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 0xb
mov dword [eax + 8], edi
mov dword [eax + 4], ebp
jmp 0x40ac7c
mov dword [esp], 0x10
call fcn.00401a90
mov esi, eax
mov dword [eax], 0
mov dword [eax + 4], 4
mov dword [eax + 8], ebp
mov dword [eax + 0xc], edi
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 0xc
mov dword [eax + 4], esi
jmp 0x40ac7c
cmp ebp, 1
jbe 0x40c560
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 2
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00402750
test eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x5c], 0
je 0x40c559
cmp ebp, 0x37
jbe 0x40bc2a
lea ecx, [esp + 0x5c]
xor esi, esi
lea esi, [esi]
lea edi, [edi]
mov dword [esp], 0x10
mov dword [esp + 0x28], ecx
call fcn.00401a90
mov ebx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 2
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00402750
cmp ebp, 0x38
mov dword [ebx + 4], eax
je 0x40bbd0
cmp byte [edi + 0x38], 0
mov ecx, dword [esp + 0x28]
je 0x40bc51
mov eax, 0x38
jmp 0x40bbc9
cmp byte [edi + eax + 1], 0
je 0x40bbe1
mov eax, edx
lea edx, [eax + 1]
cmp edx, ebp
jne 0x40bbc0
mov dword [esp], str.fontdir_device_name
call fcn.004a5954
call fcn.00409c90
add eax, 2
cmp eax, ebp
jb 0x40bbf7
jmp 0x40bc40
add eax, 1
cmp eax, ebp
je 0x40bc40
cmp byte [edi + eax], 0
jne 0x40bbf0
add eax, 1
mov dword [ebx + 0xc], edi
add esi, 1
add edi, eax
sub ebp, eax
cmp dword [esp + 0x2c], esi
mov dword [ebx + 8], eax
mov dword [ebx], 0
mov dword [ecx], ebx
mov ecx, ebx
je 0x40bf5f
cmp ebp, 0x37
ja 0x40bb70
mov dword [esp], str.fontdir
call fcn.004a5954
call fcn.00409c90
nop
lea esi, [esi]
mov dword [esp], str.fontdir_face_name
call fcn.004a5954
call fcn.00409c90
mov eax, 0x39
jmp 0x40bbe4
mov dword [esp], pe_nt_image_headers32
call fcn.00401a90
cmp ebp, 1
mov dword [esp + 0x34], eax
jbe 0x40bd59
mov eax, dword [esp + 0x34]
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ebp
mov dword [esp + 0x28], eax
add eax, 0x78
mov dword [esp + 0x30], eax
nop
mov eax, dword [esp + 0x90]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov ebx, eax
mov eax, dword [esp + 0x28]
test ebx, ebx
mov dword [eax], ebx
je 0x40bd70
lea eax, [ebx + ebx + 2]
cmp eax, dword [esp + 0x94]
mov dword [esp + 0x2c], eax
ja 0x40c593
mov eax, dword [esp + 0x2c]
sub eax, 2
mov dword [esp], eax
call fcn.00401a90
mov edi, eax
mov eax, dword [esp + 0x28]
mov dword [eax + 4], edi
mov eax, dword [esp + 0x90]
lea ebp, [eax + 2]
xor eax, eax
mov esi, eax
lea esi, [esi]
mov eax, dword [esp + 0x80]
add esi, 1
mov dword [esp + 4], ebp
mov dword [esp + 8], 2
add ebp, 2
mov dword [esp], eax
call fcn.00402750
cmp ebx, esi
mov word [edi + esi*2 - 2], ax
jne 0x40bd00
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x90], eax
sub dword [esp + 0x94], eax
cmp dword [esp + 0x28], ecx
je 0x40bd7a
add dword [esp + 0x28], 8
cmp dword [esp + 0x94], 1
ja 0x40bc90
mov dword [esp], str.stringtable_string_length
call fcn.004a5954
call fcn.00409c90
lea esi, [esi]
mov dword [esp + 0x2c], 2
jmp 0x40bd2a
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 0xd
mov eax, dword [esp + 0x34]
mov dword [ebx + 4], eax
jmp 0x40ac7c
cmp ebp, 3
jbe 0x40c5a4
lea eax, [esp + 0x5c]
mov dword [esi + 4], 0
lea ecx, [ebp - 4]
lea edx, [edi + 4]
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a4e0
mov dword [esi], eax
jmp 0x40ac7c
mov dword [esp + 0x3c], 0
jmp 0x40b8aa
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 2
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.00402750
cmp eax, 1
mov ebx, eax
jne 0x40c518
mov dword [esp], 0xc
call fcn.00401a90
mov esi, dword [esp + 0x28]
mov ebx, eax
lea eax, [edi + 4]
mov dword [esi + 0x3c], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], 4
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx], eax
lea eax, [edi + 8]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [esi + 4], eax
lea eax, [edi + 0xc]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
cmp ebp, 0x19
mov dword [esi], eax
jbe 0x40c394
mov ecx, 0x18
mov edx, 0x16
mov esi, 0x14
mov dword [esp + 0x2c], 0x12
mov ebx, 0x1a
mov eax, 0x10
jmp 0x40ad3f
xor esi, esi
jmp 0x40b2c1
xor esi, esi
jmp 0x40b447
lea eax, [edi + ebp + 8]
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov dword [ebx + 4], eax
jmp 0x40b06b
lea ebp, [esi + 8]
cmp dword [esp + 0x94], ebp
jb 0x40c5c6
lea eax, [edi + esi]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 8], eax
lea eax, [edi + esi + 4]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.004027d0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0xc], eax
jmp 0x40af92
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 5
mov eax, dword [esp + 0x28]
mov dword [ebx + 4], eax
jmp 0x40ac7c
mov esi, dword [esp + 0x5c]
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 7
mov dword [eax + 4], esi
jmp 0x40ac7c
mov eax, dword [esp + 0x34]
mov ecx, esi
mov edx, edi
mov dword [eax + 4], 0
lea eax, [esp + 0x4c]
mov dword [esp + 4], 0
mov dword [esp], 0x4c23b3
mov dword [esp + 0x14], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
call fcn.0040a6b0
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x40c5e8
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
sub ecx, eax
add edi, eax
sub esi, eax
mov dword [esp + 0x40], ecx
mov eax, ecx
mov ecx, dword [esp + 0x34]
mov dword [ecx + 8], 0
add ecx, 8
test eax, eax
mov dword [esp + 0x30], ecx
je 0x40ba4f
cmp esi, 7
jbe 0x40c548
mov dword [esp], 0xc
call fcn.00401a90
lea ecx, [esp + 0x4c]
mov dword [esp + 0x2c], eax
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov edx, edi
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x48]
mov dword [esp], 0
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 8], ecx
mov ecx, esi
call fcn.0040a6b0
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x40c530
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
sub ecx, eax
add edi, eax
sub esi, eax
sub edx, eax
mov dword [esp + 0x54], ecx
mov eax, ecx
mov ecx, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x40], edx
mov dword [ecx + 8], 0
lea ebp, [ecx + 8]
je 0x40c17e
cmp esi, 7
jbe 0x40c2f9
mov dword [esp + 0x28], ebp
jmp 0x40c0b9
cmp esi, 7
jbe 0x40c2f9
mov dword [esp], 0xc
call fcn.00401a90
mov ebp, eax
lea eax, [esp + 0x4c]
mov ecx, esi
mov edx, edi
mov dword [esp], 0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x44]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
lea eax, [ebp + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
call fcn.0040a6b0
mov eax, dword [esp + 0x4c]
add edi, eax
sub esi, eax
lea eax, [esp + 0x5c]
mov ecx, esi
mov edx, edi
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a410
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
lea ebx, [eax + eax + 5]
mov eax, dword [esp + 0x4c]
and ebx, 0xfffffffc
lea ecx, [ebx + eax]
cmp ecx, edx
jne 0x40c2cd
mov eax, dword [esp + 0x54]
add edi, ebx
sub esi, ebx
cmp ecx, eax
ja 0x40c2a5
mov edx, dword [esp + 0x40]
sub eax, ecx
mov dword [esp + 0x54], eax
sub edx, ecx
mov ecx, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x28], ebp
mov dword [ebp], 0
mov dword [ecx], ebp
jne 0x40c0b0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
test edx, edx
mov dword [eax], 0
mov dword [esp + 0x30], eax
mov dword [ecx], eax
jne 0x40c003
jmp 0x40ba4f
lea esi, [edx + 2]
cmp ebp, esi
jb 0x40c611
lea eax, [edi + edx]
mov dword [esp + 8], 2
mov dword [esp + 0x2c], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402750
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x34], eax
mov ecx, dword [ecx + 0x3c]
test ecx, ecx
je 0x40c364
mov edx, dword [esp + 0x2c]
lea ebx, [edx + 6]
cmp ebp, ebx
jb 0x40c600
mov eax, dword [esp + 0x80]
add esi, edi
mov dword [esp + 8], 2
mov dword [esp + 4], esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
mov dword [esp], eax
call fcn.00402750
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x2c], edx
mov esi, dword [eax + 0x3c]
lea eax, [edi + edx + 4]
mov dword [esp + 8], 1
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00402710
mov edx, dword [esp + 0x2c]
mov byte [esi + 8], al
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0x3c]
lea eax, [edi + edx + 5]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call fcn.00402710
mov byte [esi + 9], al
lea eax, [esp + 0x5c]
lea edx, [edi + ebx]
mov ecx, ebp
sub ecx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x80]
call fcn.0040a410
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x5c]
lea edx, [ebx + eax*2 + 2]
jmp 0x40ae9b
mov dword [esp], str.unexpected_version_string_length__ld____ld
mov dword [esp + 0x28], ecx
mov ebx, dword [esp + 0x40]
call fcn.004a5954
mov ecx, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.00413de0
mov dword [esp], str.unexpected_version_string_length__ld____ld___ld
mov esi, edx
mov edi, eax
mov dword [esp + 0x28], ebx
call fcn.004a5954
mov edx, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0xc], edx
call fcn.00413de0
mov dword [esp], str.version_string
call fcn.004a5954
call fcn.00409c90
mov ebx, dword [esp + 0x50]
mov dword [esp], 8
call fcn.00401a90
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 4], ebx
mov dword [esi], eax
mov dword [esp], 0x24
call fcn.00401a90
mov ebx, eax
mov dword [eax], 0xf
mov dword [eax + 4], esi
jmp 0x40ac7c
test eax, eax
mov ebx, eax
jne 0x40c622
cmp esi, 8
je 0x40c30a
mov dword [esp], str.nul_bytes_found_in_version_string
call fcn.004a5954
mov dword [esp], eax
call fcn.00413de0
mov ebx, esi
jmp 0x40c277
mov dword [esp], str.unexpected_version_value_length__ld
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.version_varfileinfo
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.dialog_header
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.menuex_offset
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.menuex_header
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.unsupported_menu_version__d
mov dword [esp + 0x28], eax
call fcn.004a5954
mov edx, dword [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00413de0
mov dword [esp], str.unexpected_version_type__d
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.version_length__lu_greater_than_resource_length__lu
call fcn.004a5954
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.fixed_version_info
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.unexpected_fixed_version_information_length__ld
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.unexpected_varfileinfo_value_length__ld
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
xor ebx, ebx
jmp 0x40c30e
mov dword [esp], str.unexpected_fixed_version_info_version__lu
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.unexpected_fixed_version_signature__lu
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.dialog_control_data
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.group_icon_header
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.group_icon
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.unexpected_group_icon_type__d
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.group_cursor
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.unexpected_group_cursor_type__d
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.group_cursor_header
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.unexpected_DIALOGEX_version__d
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.unexpected_version_stringtable_value_length__ld
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.version_stringtable
call fcn.004a5954
call fcn.00409c90
xor esi, esi
jmp 0x40bf63
mov dword [esp], str.fontdir_header
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.cursor
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.accelerator
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.stringtable_string
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.menu_header
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.dialog_control_end
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.dialog_control
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.dialogex_control
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.unexpected_stringfileinfo_value_length__ld
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
mov dword [esp], str.dialogex_font_information
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.dialog_font_point_size
call fcn.004a5954
call fcn.00409c90
mov dword [esp], str.unexpected_version_string_character:__x
call fcn.004a5954
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00413de0
lea esi, [esi]