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

Disassembly:
add esp, 4
pop eax
push edi
push ecx
add esp, 4
sub edi, 0x74fc
add edi, 0xc6a4
and edi, 0x17a83
pop edi
cmp dword [ebp - 0xc2c], 0
jne 0x409074
mov dword [ebp - 0x6ec], 0
jmp 0x4092d4
mov ecx, dword [ebp - 0xc2c]
mov dword [ebp - 0x4d8], ecx
push edx
xor edx, 0x10671
and edx, 0x8205
or edx, 0x1025e
pop edx
push edi
xor edi, 0x12306
call 0x4090a8
add byte [esi + 0x3d], al
push eax
xor eax, 0x83473b3f
les eax, [ecx + eax*4]
out dx, eax
sub ah, byte [esi - 0x72a10000]
xchg ebp, eax
xor al, 0xe9
invalid
push edi
or edi, 0x8679
pop edi
push esi
push ecx
add esp, 4
call 0x4092f0
add byte [esi], dh
xor eax, 0x34494838
cmp al, 0x34
add esp, 4
sub esi, 0x140cb
or esi, 0x5159
xor esi, 0xd5d7
pop esi
cmp dword [ebp - 0x6ec], 0
jne 0x409350
push esi
push edx
add esp, 4
jmp 0x40931c
xor esi, 0x2cf5
pop esi
push esi
push edi
add esp, 4
and esi, 0x13606
pop esi
push esi
push edx
add esp, 4
or esi, 0xc823
sub esi, 0x161f6
pop esi
mov dword [ebp - 0x738], 0
jmp 0x409e77
push ecx
push edx
add esp, 4
or ecx, 0x60c9
pop ecx
push esi
jmp 0x409366
add esi, 0xf9e2
pop esi
push edx
call 0x40937e
add byte [edx], bh
inc ecx
dec ecx
dec ebp
cmp ecx, dword [ecx + 0x4f]
inc edx
inc eax
push eax
add esp, 4
pop edx
mov eax, dword [ebp - 0x6ec]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2f8], ecx
mov dword [ebp - 0x6fc], 0
mov edx, dword [ebp - 0x2f8]
mov dword [ebp - 0x14e8], edx
cmp dword [ebp - 0x14e8], 0
jne 0x4093c1
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x4096b2
mov ecx, dword [ebp - 0x14e8]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x14ec], edx
jne 0x4093e9
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x4096b2
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x14ec]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x14f0], ecx
cmp dword [ebp - 0x14f0], 0
jne 0x40941b
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
jmp 0x4096b2
mov eax, dword [ebp - 0x2f8]
add eax, dword [ebp - 0x14f0]
mov dword [ebp - 0x6f0], eax
jne 0x409440
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], ecx
jmp 0x4096b2
mov edx, dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x18a0], eax
mov ecx, dword [ebp - 0x6f0]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x18a4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18a8], ecx
mov dword [ebp - 0x6f4], 0
jmp 0x40949a
mov edx, dword [ebp - 0x6f4]
add edx, 1
mov dword [ebp - 0x6f4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x6f4]
cmp ecx, dword [eax + 0x18]
jae 0x4096a6
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x6f8], ecx
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a4]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x18a8]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x18ac], eax
mov dword [ebp - 0x180], 0
jmp 0x40950a
mov ecx, dword [ebp - 0x180]
add ecx, 1
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
test eax, eax
je 0x4095bc
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
test edx, edx
je 0x4095bc
push ecx
sub ecx, 0x16b47
pop ecx
push ebx
push ecx
add esp, 4
or ebx, 0x2d85
call 0x409559
add byte [esi + 0x4d], al
cmp cl, byte [ecx + 0x45]
dec edx
cmp edi, dword [esi]
aas
add esp, 4
or ebx, 0x17ef2
xor ebx, 0xad6e
pop ebx
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x180]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x180]
movsx eax, byte [ebp + edx - 0x820]
cmp ecx, eax
je 0x4095ae
mov ecx, dword [ebp - 0x6f8]
add ecx, dword [ebp - 0x180]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x180]
movsx ecx, byte [ebp + eax - 0x820]
cmp edx, ecx
jne 0x4095b5
jmp 0x4094fb
jmp 0x4095bc
push ebx
xor ebx, 0x2033
sub ebx, 0xe85
xor ebx, 0xcb89
pop ebx
push esi
push edx
add esp, 4
sub esi, 0x1813b
jmp 0x4095e1
or esi, 0x134ef
xor esi, 0x8107
pop esi
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
cmp eax, edx
jne 0x40961b
mov dword [ebp - 0xc30], 0
jmp 0x40968a
push edx
add edx, 0x161e
sub edx, 0xb84e
sub edx, 0x7b70
pop edx
push edi
push eax
add esp, 4
or edi, 0x15e6a
call 0x409649
add byte [0x393b4042], dh
dec esi
cmp edi, dword [ebx]
cmp al, byte [ebx - 0x74a0fb3c]
test dword [eax], ecx
stc
invalid
cmp dword [ebp - 0xc30], 0
jne 0x4096a1
mov ecx, dword [ebp - 0x18ac]
mov dword [ebp - 0x3c4], ecx
jmp 0x4096b2
jmp 0x40948b
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
cmp dword [ebp - 0x3c4], 0
je 0x40978d
push eax
jmp 0x4096c6
and eax, 0x1786f
add eax, 0xbf92
xor eax, 0xfa41
pop eax
push ecx
jmp 0x4096df
jmp 0x4096e7
jmp 0x4096f0
pop ecx
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x18b0], eax
push ebx
add ebx, 0x5933
and ebx, 0x16230
call 0x409719
add byte [edx], dh
dec edi
push eax
dec esp
dec esp
aaa
inc esi
dec eax
cmp byte [ebx + 0x505b04c4], al
push esi
add esp, 4
xor eax, 0x1bdf
xor eax, 0x4b62
pop eax
mov ecx, dword [ebp - 0x18b0]
mov dword [ebp - 0x18b4], ecx
lea edx, [ebp - 0x1628]
push edx
call dword [ebp - 0x18b4]
test eax, eax
jne 0x40978d
push edi
and edi, 0xc129
call 0x409761
add byte [ebx + 0x50], cl
inc ecx
dec eax
inc esp
inc esi
inc eax
dec ecx
add esp, 4
add edi, 0xa3da
pop edi
push eax
jmp 0x409772
pop eax
push ecx
jmp 0x40977d
pop ecx
mov dword [ebp - 0x738], 0
jmp 0x409e77