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

Disassembly:
add esp, 4
and edx, 0xd94c
and edx, 0xfcaa
pop edx
push edi
or edi, 0xa504
or edi, 0x26e6
pop edi
cmp dword [ebp - 0xcc4], 0
jne 0x406c23
mov dword [ebp - 0x2fc], 0
jmp 0x406e6e
mov ecx, dword [ebp - 0xcc4]
mov dword [ebp - 0x514], ecx
push edx
xor edx, 0x14902
or edx, 0x88a1
sub edx, 0xa52a
pop edx
push ecx
jmp 0x406c4d
sub ecx, 0x61d0
add ecx, 0xa9a1
pop ecx
push edx
jmp 0x406c60
pop edx
lea edx, [ebp - 0x1738]
mov dword [ebp - 0xcc0], edx
mov eax, dword [ebp - 0x514]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xcbc], ecx
xor edx, edx
mov word [ebp - 0x21c], dx
xor eax, eax
mov word [ebp - 0x38], ax
push eax
push esi
add esp, 4
xor eax, 0x4f8b
pop eax
push edx
and edx, 0x13e88
and edx, 0x14d2e
and edx, 0x117c6
call 0x406cb9
add byte [esi + 0x46], al
dec esi
dec edi
dec esi
aas
dec edi
aaa
inc ecx
add esp, 4
pop edx
mov ecx, dword [ebp - 0xcbc]
mov dx, word [ecx]
mov word [ebp - 0x103e], dx
mov eax, dword [ebp - 0xcbc]
add eax, 2
mov dword [ebp - 0xcbc], eax
mov cx, word [ebp - 0x103e]
mov word [ebp - 0x21c], cx
mov edx, dword [ebp - 0xcc0]
mov ax, word [edx]
mov word [ebp - 0x1040], ax
mov ecx, dword [ebp - 0xcc0]
add ecx, 2
mov dword [ebp - 0xcc0], ecx
mov dx, word [ebp - 0x1040]
mov word [ebp - 0x38], dx
push ebx
push ecx
add esp, 4
xor ebx, 0x7a3e
sub ebx, 0x109ce
and ebx, 0xb419
or ebx, 0xd802
pop ebx
push edx
or edx, 0x6b0b
sub edx, 0x13a1f
add edx, 0x29bd
pop edx
movzx eax, word [ebp - 0x38]
test eax, eax
jne 0x406d63
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
sub ecx, edx
mov dword [ebp - 0x161c], ecx
jmp 0x406dbd
movzx eax, word [ebp - 0x21c]
movzx ecx, word [ebp - 0x38]
cmp eax, ecx
je 0x406c8b
movzx edx, word [ebp - 0x21c]
xor edx, 0x20
movzx eax, word [ebp - 0x38]
cmp edx, eax
je 0x406c8b
movzx ecx, word [ebp - 0x21c]
movzx edx, word [ebp - 0x38]
cmp ecx, edx
jge 0x406da7
mov dword [ebp - 0x1618], 0xffffffff
jmp 0x406db1
mov dword [ebp - 0x1618], 1
mov eax, dword [ebp - 0x1618]
mov dword [ebp - 0x161c], eax
cmp dword [ebp - 0x161c], 0
jne 0x406e06
push eax
push ecx
add esp, 4
add eax, 0x4f06
sub eax, 0x3275
xor eax, 0x3792
and eax, 0x17711
pop eax
push ebx
and ebx, 0xfb80
pop ebx
push eax
push edx
add esp, 4
sub eax, 0x6704
pop eax
mov ecx, dword [ebp - 0x514]
mov dword [ebp - 0x2fc], ecx
jmp 0x406e6e
push ebx
push ebx
add esp, 4
and ebx, 0x9cbb
jmp 0x406e16
pop ebx
push edx
add edx, 0x2e50
pop edx
push eax
sub eax, 0x176a6
call 0x406e34
add byte [eax], bh
inc ebx
dec eax
cmp dword [eax], edi
dec ebx
cmp byte [ebx + eax*4], dh
les eax, [eax + ebx*2]
mov edx, dword [ebp - 0x514]
mov eax, dword [edx]
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 0x514]
cmp ecx, dword [ebp - 0xcc4]
je 0x406e64
mov edx, dword [ebp - 0x514]
cmp dword [edx + 0x30], 0
jne 0x406c2f
mov dword [ebp - 0x2fc], 0
push ecx
push ecx
add esp, 4
and ecx, 0x6d10
xor ecx, 0x12fa4
pop ecx
push ecx
call 0x406e90
add byte [ecx + 0x3a], cl
dec esi
dec edi
cmp eax, 0x414a474f
add esp, 4
or ecx, 0xbb38
add ecx, 0x17793
pop ecx
cmp dword [ebp - 0x2fc], 0
jne 0x4077a5
mov eax, 0x6b
mov word [ebp - 0x1790], ax
mov ecx, 0x65
mov word [ebp - 0x178e], cx
mov edx, 0x72
mov word [ebp - 0x178c], dx
mov eax, 0x6e
mov word [ebp - 0x178a], ax
mov ecx, 0x65
mov word [ebp - 0x1788], cx
mov edx, 0x6c
mov word [ebp - 0x1786], dx
mov eax, 0x33
mov word [ebp - 0x1784], ax
mov ecx, 0x32
mov word [ebp - 0x1782], cx
mov edx, 0x2e
mov word [ebp - 0x1780], dx
mov eax, 0x64
mov word [ebp - 0x177e], ax
mov ecx, 0x6c
mov word [ebp - 0x177c], cx
mov edx, 0x6c
mov word [ebp - 0x177a], dx
xor eax, eax
mov word [ebp - 0x1778], ax
push edx
push esi
add esp, 4
and edx, 0xdf97
add edx, 0x166e5
or edx, 0xe93d
sub edx, 0x75c4
pop edx
push edx
add edx, 0x11762
xor edx, 0x13b9b
add edx, 0x24b0
pop edx
mov byte [ebp - 0x8a4], 0x4c
mov byte [ebp - 0x8a3], 0x6f
mov byte [ebp - 0x8a2], 0x61
mov byte [ebp - 0x8a1], 0x64
mov byte [ebp - 0x8a0], 0x4c
mov byte [ebp - 0x89f], 0x69
mov byte [ebp - 0x89e], 0x62
mov byte [ebp - 0x89d], 0x72
mov byte [ebp - 0x89c], 0x61
mov byte [ebp - 0x89b], 0x72
mov byte [ebp - 0x89a], 0x79
mov byte [ebp - 0x899], 0x57
mov byte [ebp - 0x898], 0
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x199c], ecx
mov edx, dword [ebp - 0x199c]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19a0], eax
mov ecx, dword [ebp - 0x19a0]
mov dword [ebp - 0x1620], ecx
push ecx
push edi
add esp, 4
or ecx, 0xb2ed
sub ecx, 0x9f85
pop ecx
push edi
push esi
add esp, 4
add edi, 0x8013
call 0x407024
add byte [edx], bh
cmp edx, dword [eax + 0x4a]
push eax
add esp, 4
jmp 0x40702c
pop edi
cmp dword [ebp - 0x1620], 0
jne 0x407045
mov dword [ebp - 0x774], 0
jmp 0x4072ec
mov edx, dword [ebp - 0x1620]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcd0], ecx
push edx
push ebx
add esp, 4
or edx, 0x22fb
pop edx
push edi
add edi, 0x147ef
pop edi
push edx
push ecx
add esp, 4
jmp 0x407076
xor edx, 0x14752
add edx, 0x14c24
or edx, 0x185b3
pop edx
cmp dword [ebp - 0xcd0], 0
jne 0x4070a1
mov dword [ebp - 0x774], 0
jmp 0x4072ec
mov edx, dword [ebp - 0xcd0]
mov dword [ebp - 0x518], edx
push eax
call 0x4070ba
add byte [ebp + ecx*2 + 0x42], cl
inc esp
dec esp
add esp, 4
sub eax, 0x424d
jmp 0x4070ca
pop eax
push ecx
push edi
add esp, 4
and ecx, 0x596c
jmp 0x4070de
pop ecx
lea eax, [ebp - 0x1790]
mov dword [ebp - 0xccc], eax
mov ecx, dword [ebp - 0x518]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xcc8], edx
xor eax, eax
mov word [ebp - 0x220], ax
xor ecx, ecx
mov word [ebp - 0x3c], cx
push edi
or edi, 0x117ad
sub edi, 0xf197
sub edi, 0x13fe6
pop edi
push edx
xor edx, 0xdf7e
pop edx
push edx
push ecx
add esp, 4
call 0x407137
add byte [ebx + edi], bh
cmp al, 0x4e
inc esi
add esp, 4
pop edx
mov edx, dword [ebp - 0xcc8]
mov ax, word [edx]
mov word [ebp - 0x1042], ax
mov ecx, dword [ebp - 0xcc8]
add ecx, 2
mov dword [ebp - 0xcc8], ecx
mov dx, word [ebp - 0x1042]
mov word [ebp - 0x220], dx
mov eax, dword [ebp - 0xccc]
mov cx, word [eax]
mov word [ebp - 0x1044], cx
mov edx, dword [ebp - 0xccc]
add edx, 2
mov dword [ebp - 0xccc], edx
mov ax, word [ebp - 0x1044]
mov word [ebp - 0x3c], ax
push edx
push ecx
add esp, 4
xor edx, 0x8af2
and edx, 0x549c
sub edx, 0x6f38
pop edx
push edi
call 0x4071ba
add byte [eax], bh
inc ecx
inc esi
inc ebp
dec edx
dec ebp
cmp eax, 0x4c4834a
add edi, 0xb2a
pop edi
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x4071e1
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x1668], edx
jmp 0x40723b
movzx ecx, word [ebp - 0x220]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x407109
movzx eax, word [ebp - 0x220]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je 0x407109
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x407225
mov dword [ebp - 0x1624], 0xffffffff
jmp 0x40722f
mov dword [ebp - 0x1624], 1
mov ecx, dword [ebp - 0x1624]
mov dword [ebp - 0x1668], ecx
cmp dword [ebp - 0x1668], 0
jne 0x407284
push esi
xor esi, 0x5fa3
jmp 0x407252
jmp 0x40725b
and esi, 0x15486
pop esi
push edx
xor edx, 0x3bdd
or edx, 0x8b40
and edx, 0x16124
pop edx
mov edx, dword [ebp - 0x518]
mov dword [ebp - 0x774], edx
jmp 0x4072ec
push ebx
add ebx, 0x15b31
call 0x40729a
add byte [edx], dh
dec ebp
cmp dword [eax + 0x36], edx
inc ebx
push eax
inc edx
inc edi
add esp, 4
or ebx, 0x14839
pop ebx
push esi
push edi
add esp, 4
and esi, 0x928
or esi, 0x1587f
pop esi
mov eax, dword [ebp - 0x518]
mov ecx, dword [eax]
mov dword [ebp - 0x518], ecx
mov edx, dword [ebp - 0x518]
cmp edx, dword [ebp - 0xcd0]
je 0x4072e2
mov eax, dword [ebp - 0x518]
cmp dword [eax + 0x30], 0
jne 0x4070ad
mov dword [ebp - 0x774], 0
push edx
push ecx
add esp, 4
sub edx, 0x13d6c
pop edx
push ecx
or ecx, 0x17128
pop ecx
push ecx
or ecx, 0x12461
and ecx, 0x17cc9
call 0x40731a
add byte [esi + 0x41], al
cmp bh, byte [ebx + eax*2]
cmp byte [edx], dh
add esp, 4
pop ecx
cmp dword [ebp - 0x774], 0
jne 0x407368
push ecx
push edx
add esp, 4
sub ecx, 0x2084
pop ecx
push edi
add edi, 0x4bf7
pop edi
push ebx
push eax
add esp, 4
xor ebx, 0x5763
pop ebx
push ebx
push ebx
add esp, 4
sub ebx, 0xe464
and ebx, 0x681e
pop ebx
mov dword [ebp - 0xab4], 0
jmp 0x407e90
push ebx
add ebx, 0x1324b
and ebx, 0x9e43
xor ebx, 0x142b4
pop ebx
push esi
or esi, 0x16394
sub esi, 0x4608
jmp 0x407390
jmp 0x407399
pop esi
mov ecx, dword [ebp - 0x774]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3a4], edx
mov dword [ebp - 0x784], 0
mov eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x166c], eax
cmp dword [ebp - 0x166c], 0
mov ebp, 0xffffe994
add byte [ebp + 0x11], dh
mov edx, dword [ebp - 0x166c]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1670], eax
jne 0x407401
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], ecx
jmp 0x4076ca
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1670]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1678], edx
cmp dword [ebp - 0x1678], 0
jne 0x407433
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], eax
jmp 0x4076ca
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [ebp - 0x1678]
mov dword [ebp - 0x778], ecx
jne 0x407458
mov edx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], edx
jmp 0x4076ca
mov eax, dword [ebp - 0x778]
mov ecx, dword [ebp - 0x3a4]
pop esp
cld
invalid
inc dword [ebx]
dec eax
and byte [ecx - 0x19a373], cl
dec dword [ebx - 0x7776b]
dec dword [ebx - 0x3a37b]
inc dword [ebx]
inc edx
and al, 0x89
test dword [eax - 0x1a], ebx
invalid
dec dword [ebx - 0x77773]
dec dword [ebx - 0x3a36b]
inc dword [ebx]
push ecx
sbb al, 0x89
xchg ebp, eax
push esp
out 0xff, al
inc edi
test dword [eax + edi*8 + 0xffff], eax
add byte [eax], al
jmp 0x4074b2
mov eax, dword [ebp - 0x77c]
add eax, 1
mov dword [ebp - 0x77c], eax
mov ecx, dword [ebp - 0x778]
mov edx, dword [ebp - 0x77c]
cmp edx, dword [ecx + 0x18]
jae 0x4076be
mov eax, dword [ebp - 0x77c]
mov ecx, dword [ebp - 0x19a4]
mov edx, dword [ebp - 0x3a4]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x780], edx
mov eax, dword [ebp - 0x77c]
mov ecx, dword [ebp - 0x19a8]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x19ac]
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x19b0], ecx
mov dword [ebp - 0x1a0], 0
jmp 0x407522
mov edx, dword [ebp - 0x1a0]
add edx, 1
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x780]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4075d4
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x8a4]
test eax, eax
je 0x4075d4
push edi
push edx
add esp, 4
jmp 0x40755a
add edi, 0x5d82
xor edi, 0x9316
and edi, 0x4a27
pop edi
push eax
push ecx
add esp, 4
and eax, 0x10f98
pop eax
push eax
add eax, 0xe668
pop eax
mov ecx, dword [ebp - 0x780]
add ecx, dword [ebp - 0x1a0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1a0]
movsx ecx, byte [ebp + eax - 0x8a4]
cmp edx, ecx
je 0x4075c6
mov edx, dword [ebp - 0x780]
add edx, dword [ebp - 0x1a0]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x1a0]
movsx edx, byte [ebp + ecx - 0x8a4]
cmp eax, edx
jne 0x4075cd
jmp 0x407513
jmp 0x4075d4
push eax
push ecx
add esp, 4
add eax, 0xd2bd
jmp 0x4075e7
pop eax
push esi
push eax
add esp, 4
xor esi, 0x13088
and esi, 0x1395f
or esi, 0x55d
xor esi, 0x1efb
pop esi
mov eax, dword [ebp - 0x780]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x8a4]
cmp ecx, eax
jne 0x407633
mov dword [ebp - 0xcd4], 0
jmp 0x4076a2
push ebx
call 0x407640
add byte [ebx + 0x3a], cl
push eax
dec edx
dec esi
cmp al, byte [ebx + 0x7e804c4]
add byte [eax], al
add byte [eax], al
inc esi
inc edx
inc ebp
dec edi
cmp ecx, dword [edx - 0x7d]
les eax, [ebx + ebx*2]
push ebx
push edx
add esp, 4
and ebx, 0x49fe
add ebx, 0xfc70
pop ebx
mov ecx, dword [ebp - 0x780]
add ecx, dword [ebp - 0x1a0]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x1a0]
movsx ecx, byte [ebp + eax - 0x8a4]
or ecx, 0x20
cmp edx, ecx
jge 0x407698
mov dword [ebp - 0xcd4], 0xffffffff
jmp 0x4076a2
mov dword [ebp - 0xcd4], 1
cmp dword [ebp - 0xcd4], 0
jne 0x4076b9
mov edx, dword [ebp - 0x19b0]
mov dword [ebp - 0x3f8], edx
jmp 0x4076ca
jmp 0x4074a3
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], eax