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

Disassembly:
mov ecx, dword [ebp - 0x784]
add ecx, 1
mov dword [ebp - 0x784], ecx
mov edx, dword [ebp - 0x780]
mov eax, dword [ebp - 0x784]
cmp eax, dword [edx + 0x18]
jae 0x40a334
mov ecx, dword [ebp - 0x784]
mov edx, dword [ebp - 0x19b8]
mov eax, dword [ebp - 0x35c]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x788], eax
mov ecx, dword [ebp - 0x784]
mov edx, dword [ebp - 0x19bc]
movzx eax, word [edx + ecx*2]
mov ecx, dword [ebp - 0x19c0]
mov edx, dword [ebp - 0x35c]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x19c4], edx
mov dword [ebp - 0x1d0], 0
jmp 0x40a198
mov eax, dword [ebp - 0x1d0]
add eax, 1
mov dword [ebp - 0x1d0], eax
mov ecx, dword [ebp - 0x788]
add ecx, dword [ebp - 0x1d0]
movsx edx, byte [ecx]
test edx, edx
je 0x40a24a
mov eax, dword [ebp - 0x1d0]
movsx ecx, byte [ebp + eax - 0x8ac]
test ecx, ecx
je 0x40a24a
push esi
jmp 0x40a1cf
add esi, 0xe7c0
jmp 0x40a1dd
pop esi
push edi
add edi, 0xf45a
jmp 0x40a1ea
pop edi
push esi
push edx
add esp, 4
and esi, 0x17700
pop esi
mov edx, dword [ebp - 0x788]
add edx, dword [ebp - 0x1d0]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x1d0]
movsx edx, byte [ebp + ecx - 0x8ac]
cmp eax, edx
je 0x40a23c
mov eax, dword [ebp - 0x788]
add eax, dword [ebp - 0x1d0]
movsx ecx, byte [eax]
xor ecx, 0x20
mov edx, dword [ebp - 0x1d0]
movsx eax, byte [ebp + edx - 0x8ac]
cmp ecx, eax
jne 0x40a243
jmp 0x40a189
jmp 0x40a24a
push ecx
push esi
add esp, 4
and ecx, 0x329a
loope 0x40a1ec
xor al, byte [eax]
add byte [ecx + 0x9339c1], al
add byte [ecx + 0x53], bl
loope 0x40a1ec
xor al, byte [eax]
add byte [ecx + 0x9339c1], al
add byte [ecx + 0x53], bl
xor ebx, 0x16822
call 0x40a272
add byte [eax + 0x41], cl
dec edi
aaa
xor al, 0x4a
inc esi
cmp dword [esi - 0x7d], ecx
les eax, [ecx + eax*4]
jecxz 0x40a271
dec esi
add esp, 4
and ebx, 0xa2f9
pop ebx
mov ecx, dword [ebp - 0x788]
add ecx, dword [ebp - 0x1d0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1d0]
movsx ecx, byte [ebp + eax - 0x8ac]
cmp edx, ecx
jne 0x40a2a9
mov byte [0x8b5b0000], al
lea edi, [eax - 8]
invalid
mov dword [ebp - 0xce4], 0
jmp 0x40a318
push esi
push esi
add esp, 4
or esi, 0x12408
pop esi
push ebx
push edx
add esp, 4
and ebx, 0x1697a
sub ebx, 0xcbdf
pop ebx
push ecx
and ecx, 0xe3ef
xor ecx, 0x4ba6
add ecx, 0x157d3
pop ecx
mov edx, dword [ebp - 0x788]
add edx, dword [ebp - 0x1d0]
movsx eax, byte [edx]
or eax, 0x20
mov ecx, dword [ebp - 0x1d0]
movsx edx, byte [ebp + ecx - 0x8ac]
or edx, 0x20
cmp eax, edx
jge 0x40a30e
mov dword [ebp - 0xce4], 0xffffffff
jmp 0x40a318
mov dword [ebp - 0xce4], 1
cmp dword [ebp - 0xce4], 0
jne 0x40a32f
mov eax, dword [ebp - 0x19c4]
mov dword [ebp - 0x3f8], eax
jmp 0x40a340
jmp 0x40a119
mov ecx, dword [ebp - 0x78c]
mov dword [ebp - 0x3f8], ecx
cmp dword [ebp - 0x3f8], 0
je 0x40a41b
push eax
push esi
add esp, 4
or eax, 0x76cf
call 0x40a365
add byte [ebx + 0x34], al
dec ecx
dec edx
cmp byte [edi + 0x4f], cl
add esp, 4
pop eax
push ecx
add ecx, 0x268d
and ecx, 0x3bc3
pop ecx
push edx
and edx, 0x10550
pop edx
mov edx, dword [ebp - 0x3f8]
mov dword [ebp - 0x19c8], edx
push esi
sub esi, 0x977a
add esi, 0x16978
pop esi
push edx
push esi
add esp, 4
add edx, 0xa435
xor edx, 0x5172
and edx, 0xc610
pop edx
push edi
push eax
add esp, 4
or edi, 0x11bee
pop edi
mov eax, dword [ebp - 0x19c8]
mov dword [ebp - 0x19cc], eax
lea ecx, [ebp - 0x173c]
push ecx
call dword [ebp - 0x19cc]
test eax, eax
jne 0x40a41b
push edx
call 0x40a3e9
add byte [esi + ecx*2 + 0x33], cl
dec edi
inc edx
dec esp
dec esi
add esp, 4
pop edx
push ecx
xor ecx, 0x1291b
pop ecx
push ebx
and ebx, 0xa809
call 0x40a408
add byte [edi + edi], dh
dec esp
cmp eax, 0xc483444e
add al, 0x5b
mov dword [ebp - 0xad4], 0
jmp 0x40ab06
push esi
xor esi, 0x113d8
pop esi
push edi
push edx
add esp, 4
and edi, 0x160a1
sub edi, 0x55f6
add edi, 0x4238
call 0x40a449
add byte [ebx], dh
dec esp
inc eax
cmp byte ss:[0x8347384b], dh
les eax, [edi + ebx*2]
mov edx, dword fs:[0x18]
mov dword [ebp - 0x19d0], edx
mov eax, dword [ebp - 0x19d0]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x19d4], ecx
mov edx, dword [ebp - 0x19d4]
mov dword [ebp - 0x1674], edx
push esi
add esi, 0xd58c
xor esi, 0xba90
jmp 0x40a48a
pop esi
push edx
jmp 0x40a495
jmp 0x40a49a
sub edx, 0x100ed
add edx, 0x40b2
pop edx
cmp dword [ebp - 0x1674], 0
jne 0x40a4bf
mov dword [ebp - 0x300], 0
jmp 0x40a766
mov eax, dword [ebp - 0x1674]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xcf0], edx
push edx
jmp 0x40a4d8
add edx, 0xf8bb
add edx, 0x1a
pop edx
push edi
push ecx
add esp, 4
sub edi, 0x3870
call 0x40a4ff
add byte [ebx], dh
xor al, byte [edi + 0x34]
cmp eax, 0x4d4a4650
add esp, 4
pop edi
cmp dword [ebp - 0xcf0], 0
jne 0x40a51b
mov dword [ebp - 0x300], 0
jmp 0x40a766
mov eax, dword [ebp - 0xcf0]
mov dword [ebp - 0x518], eax
push ecx
call 0x40a537
add byte [edx], bh
xor al, 0x43
inc edx
xor dh, byte [edx]
dec ebp
inc edx
add esp, 4
pop ecx
push ecx
push edi
add esp, 4
add ecx, 0x397b
and ecx, 0x9e4d
jmp 0x40a552
and ecx, 0x16e80
pop ecx
lea ecx, [ebp - 0x173c]
mov dword [ebp - 0xcec], ecx
mov edx, dword [ebp - 0x518]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0xce8], eax
xor ecx, ecx
mov word [ebp - 0x240], cx
xor edx, edx
mov word [ebp - 0x54], dx
push ebx
push edi
add esp, 4
add ebx, 0x7980
add ebx, 0x7908
and ebx, 0x1f7f
pop ebx
push edi
or edi, 0x11eda
add edi, 0x227e
xor edi, 0x400f
xor edi, 0xcd7
pop edi
mov eax, dword [ebp - 0xce8]
mov cx, word [eax]
mov word [ebp - 0x1056], cx
mov edx, dword [ebp - 0xce8]
add edx, 2
mov dword [ebp - 0xce8], edx
mov ax, word [ebp - 0x1056]
mov word [ebp - 0x240], ax
mov ecx, dword [ebp - 0xcec]
mov dx, word [ecx]
mov word [ebp - 0x1058], dx
mov eax, dword [ebp - 0xcec]
add eax, 2
mov dword [ebp - 0xcec], eax
mov cx, word [ebp - 0x1058]
mov word [ebp - 0x54], cx
push edx
and edx, 0x98dc
sub edx, 0xfc80
or edx, 0x18488
or edx, 0x124d5
pop edx
push edx
push edx
add esp, 4
and edx, 0x492
add edx, 0x1336a
and edx, 0x1729c
pop edx
movzx edx, word [ebp - 0x54]
test edx, edx
jne 0x40a65b
movzx eax, word [ebp - 0x240]
movzx ecx, word [ebp - 0x54]
sub eax, ecx
mov dword [ebp - 0x1680], eax
jmp 0x40a6b5
movzx edx, word [ebp - 0x240]
movzx eax, word [ebp - 0x54]
cmp edx, eax
je 0x40a583
movzx ecx, word [ebp - 0x240]
xor ecx, 0x20
movzx edx, word [ebp - 0x54]
cmp ecx, edx
je 0x40a583
movzx eax, word [ebp - 0x240]
movzx ecx, word [ebp - 0x54]
cmp eax, ecx
jge 0x40a69f
mov dword [ebp - 0x1678], 0xffffffff
jmp 0x40a6a9
mov dword [ebp - 0x1678], 1
mov edx, dword [ebp - 0x1678]
mov dword [ebp - 0x1680], edx
cmp dword [ebp - 0x1680], 0
jne 0x40a6fe
push esi
push edx
add esp, 4
or esi, 0xb276
add esi, 0xb461
xor esi, 0x1841d
and esi, 0xa859
pop esi
push edx
xor edx, 0xa844
sub edx, 0x185a
and edx, 0xd090
pop edx
mov eax, dword [ebp - 0x518]
mov dword [ebp - 0x300], eax
jmp 0x40a766
push edi
jmp 0x40a704
sub edi, 0x17b29
jmp 0x40a712
pop edi
push edi
or edi, 0x14d90
and edi, 0x14b7e
jmp 0x40a727
pop edi
push edx
and edx, 0x16989
pop edx
mov ecx, dword [ebp - 0x518]
mov edx, dword [ecx]
mov dword [ebp - 0x518], edx
mov eax, dword [ebp - 0x518]
cmp eax, dword [ebp - 0xcf0]
je 0x40a75c
mov ecx, dword [ebp - 0x518]
cmp dword [ecx + 0x30], 0
jne 0x40a527
mov dword [ebp - 0x300], 0
push edx
and edx, 0x1e6c
xor edx, 0x68
pop edx
push edx
push ecx
add esp, 4
or edx, 0x13b5f
xor edx, 0x47c2
call 0x40a794
add byte [ebp + 0x42], cl
inc esp
dec esi
inc ebp
inc ebx
add esp, 4
pop edx
mov edx, dword [ebp - 0x300]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x358], eax
push ecx
push ebx
add esp, 4
sub ecx, 0xd660
or ecx, 0xb0ad
pop ecx
push ebx
push edx
add esp, 4
and ebx, 0x12aa3
pop ebx
push ebx
sub ebx, 0x97e4
add ebx, 0x1037a
add ebx, 0x1677a
pop ebx
mov dword [ebp - 0x79c], 0
mov ecx, dword [ebp - 0x358]
mov dword [ebp - 0x1684], ecx
cmp dword [ebp - 0x1684], 0
jne 0x40a809
mov edx, dword [ebp - 0x79c]
mov dword [ebp - 0x51c], edx
jmp 0x40aafa
mov eax, dword [ebp - 0x1684]
mov ecx, dword [ebp - 0x358]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0x1688], ecx
jne 0x40a831
mov edx, dword [ebp - 0x79c]
mov dword [ebp - 0x51c], edx
jmp 0x40aafa
mov eax, 8
imul ecx, eax, 0
mov edx, dword [ebp - 0x1688]
mov eax, dword [edx + ecx + 0x78]
mov dword [ebp - 0x168c], eax
cmp dword [ebp - 0x168c], 0
jne 0x40a863
mov ecx, dword [ebp - 0x79c]
mov dword [ebp - 0x51c], ecx
jmp 0x40aafa
mov edx, dword [ebp - 0x358]
add edx, dword [ebp - 0x168c]
mov dword [ebp - 0x790], edx
jne 0x40a888
mov eax, dword [ebp - 0x79c]
mov dword [ebp - 0x51c], eax
jmp 0x40aafa
mov ecx, dword [ebp - 0x790]
mov edx, dword [ebp - 0x358]
add edx, dword [ecx + 0x20]
mov dword [ebp - 0x19d8], edx
mov eax, dword [ebp - 0x790]
mov ecx, dword [ebp - 0x358]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x19dc], ecx
mov edx, dword [ebp - 0x790]
mov eax, dword [ebp - 0x358]
add eax, dword [edx + 0x1c]
mov dword [ebp - 0x19e0], eax
mov dword [ebp - 0x794], 0
jmp 0x40a8e2
mov ecx, dword [ebp - 0x794]
add ecx, 1
mov dword [ebp - 0x794], ecx
mov edx, dword [ebp - 0x790]
mov eax, dword [ebp - 0x794]
cmp eax, dword [edx + 0x18]
jae 0x40aaee
mov ecx, dword [ebp - 0x794]
mov edx, dword [ebp - 0x19d8]
mov eax, dword [ebp - 0x358]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x798], eax
mov ecx, dword [ebp - 0x794]
mov edx, dword [ebp - 0x19dc]
movzx eax, word [edx + ecx*2]
mov ecx, dword [ebp - 0x19e0]
mov edx, dword [ebp - 0x358]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x19e4], edx
mov dword [ebp - 0x1d4], 0
jmp 0x40a952
mov eax, dword [ebp - 0x1d4]
add eax, 1
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x798]
add ecx, dword [ebp - 0x1d4]
movsx edx, byte [ecx]
test edx, edx
je 0x40aa04
mov eax, dword [ebp - 0x1d4]
movsx ecx, byte [ebp + eax - 0x9dc]
test ecx, ecx
je 0x40aa04
push esi
push ebx
add esp, 4
sub esi, 0x17e2
xor esi, 0x17098
xor esi, 0x65f3
pop esi
push edx
xor edx, 0x17420
sub edx, 0x1702
add edx, 0x2e2f
sub edx, 0x4f3d
pop edx
mov edx, dword [ebp - 0x798]
add edx, dword [ebp - 0x1d4]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x1d4]
movsx edx, byte [ebp + ecx - 0x9dc]
cmp eax, edx
je 0x40a9f6
mov eax, dword [ebp - 0x798]
add eax, dword [ebp - 0x1d4]
movsx ecx, byte [eax]
xor ecx, 0x20
mov edx, dword [ebp - 0x1d4]
movsx eax, byte [ebp + edx - 0x9dc]
cmp ecx, eax
jne 0x40a9fd
jmp 0x40a943
jmp 0x40aa04
push edx
sub edx, 0x1591d
and edx, 0x144bc
pop edx
push ebx
or ebx, 0x8fc2
call 0x40aa26
add byte [ecx], bh
xor al, 0x33
aas
cmp al, 0x33
dec edx
add esp, 4
xor ebx, 0x974f
jmp 0x40aa35
pop ebx
mov ecx, dword [ebp - 0x798]
add ecx, dword [ebp - 0x1d4]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1d4]
movsx ecx, byte [ebp + eax - 0x9dc]
cmp edx, ecx
jne 0x40aa63
mov dword [ebp - 0xcf4], 0
jmp 0x40aad2
push eax
add eax, 0xd2be
call 0x40aa79
add byte [ebp + 0x3a], al
inc edi
aaa
dec edx
dec ebx
cmp edi, dword [ebx]
dec esp
add esp, 4
add eax, 0xc0d2
pop eax
push ecx
push eax
add esp, 4
or ecx, 0xfb56
sub ecx, 0x3a20
pop ecx
mov edx, dword [ebp - 0x798]
add edx, dword [ebp - 0x1d4]
movsx eax, byte [edx]
or eax, 0x20
mov ecx, dword [ebp - 0x1d4]
movsx edx, byte [ebp + ecx - 0x9dc]
or edx, 0x20
cmp eax, edx
jge 0x40aac8
mov dword [ebp - 0xcf4], 0xffffffff
jmp 0x40aad2
mov dword [ebp - 0xcf4], 1
cmp dword [ebp - 0xcf4], 0
jne 0x40aae9
mov eax, dword [ebp - 0x19e4]
mov dword [ebp - 0x51c], eax
jmp 0x40aafa
jmp 0x40a8d3
mov ecx, dword [ebp - 0x79c]
mov dword [ebp - 0x51c], ecx
mov edx, dword [ebp - 0x51c]
mov dword [ebp - 0xad4], edx
push ebx
push ecx
add esp, 4
call 0x40ab17
add byte [edi], bh
push eax
xor dh, byte [0xc4834233]
add al, 0x5b
push ecx
and ecx, 0x103e9
add ecx, 0xe4a8
and ecx, 0x1796f
pop ecx
push edi
jmp 0x40ab37
pop edi
mov eax, dword [ebp - 0xad4]
mov dword [ebp - 0x19e8], eax
lea ecx, [ebp - 0xcf8]
push ecx
push 0x40
mov edx, dword [ebp - 0x1690]
push edx
mov eax, dword [ebp - 0x3fc]
push eax
call dword [ebp - 0x19e8]
test eax, eax
jne 0x40abab
push ebx
jmp 0x40ab6b
call 0x40ab7b
add byte [ebp + 0x40], cl
xor eax, 0x4934453c
inc ecx
inc eax
aas
add esp, 4
pop ebx
push eax
push edi
add esp, 4
and eax, 0x10a4a
and eax, 0xdd7
and eax, 0x10908
pop eax
mov ecx, dword [ebp - 0x7a4]
mov dword [ebp - 0x19ec], ecx
push 0
call dword [ebp - 0x19ec]
mov edx, dword [ebp - 0x19f0]
mov dword [ebp - 0x7a0], edx
jmp 0x40abc8
mov eax, dword [ebp - 0x7a0]
add eax, 1
mov dword [ebp - 0x7a0], eax
mov ecx, dword [ebp - 0x7a0]
cmp ecx, dword [ebp - 0xad8]
jae 0x40ac24
push ebx
call 0x40abe6
add byte [eax], bh
dec ebp
inc eax
aaa
cmp eax, 0x464d3e37
add esp, 4
call 0x40abf8
add byte [edx + 0x3d], al
aas
inc edi
dec ebp
cmp dword [edi], edi
cmp dword [esi], esi
add esp, 4
xor ebx, 0x17ace
and ebx, 0x125f7
pop ebx
movzx edx, byte [ebp - 0x3b0]
mov eax, dword [ebp - 0x7a0]
movsx ecx, byte [eax]
sub ecx, edx
mov edx, dword [ebp - 0x7a0]
mov byte [edx], cl
jmp 0x40abb9
mov eax, dword [ebp - 0xad4]
mov dword [ebp - 0x19f4], eax
lea ecx, [ebp - 0xcf8]
push ecx
mov edx, dword [ebp - 0xcf8]
push edx
mov eax, dword [ebp - 0x1690]
push eax
mov ecx, dword [ebp - 0x3fc]
push ecx
call dword [ebp - 0x19f4]
test eax, eax
jne 0x40ac9c
push esi
call 0x40ac67
add byte [esi + 0x3e454d3a], bh
inc esp
dec ecx
xor ecx, dword [ebx - 0x7d]
les eax, [ebx + ebp*8]
add edi, dword [edx]
inc ecx
dec ebp
pop esi
push edx
push eax
add esp, 4
or edx, 0x8926
pop edx
push edi
push edx
add esp, 4
add edi, 0xbbd
pop edi
mov edx, dword [ebp - 0x7a4]
mov dword [ebp - 0x19f8], edx
push 0
call dword [ebp - 0x19f8]
push edi
jmp 0x40aca3
sub edi, 0x161bc
sub edi, 0xb092
pop edi
push edx
push esi
add esp, 4
and edx, 0x16cf1
xor edx, 0xeddc
sub edx, 0xfc5f
sub edx, 0x1080a
pop edx
push ecx
mov ecx, 0x10101010
pop ecx
push ecx
mov ecx, 0xffff01ff
pop ecx
push ecx
push esp
test ch, al
add eax, 0x3cd6f182
add al, byte [ecx]
pop ecx
push ebx
and bl, 0xd6
loopne 0x40acef
add dword [ebx + 0x57], ebx
pop ebx
push edi
pop eax
test ch, al
add eax, 0x457def82
add al, byte [ecx]
add bh, 0x11
inc ecx
add dword [ecx], eax
xor bh, 0xd3
jnp 0x40ad08
add dword [edx + 0x16eacc7], eax
add dword [edi - 0x47], ebx
insb byte es:[edi], dx
add dword [ecx], eax
add dword [edi - 0x76], esp
xchg byte [ecx - 0x45ffff11], al
add word [ecx], ax
add dword [edi - 0x76], esp
mov es, word [ebx - 0x44ffff11]
jae 0x40ad2a
invalid
add dword [ecx], eax
mov dl, byte [bp - 0x107b]
add dword [edi - 0x76], esp
xchg esi, eax
test edi, ebp
add byte [eax], al
mov ecx, 0x101016f
mov al, byte [bp - 0x1079]
add byte [eax], al
mov edx, 0x1010166
mov cl, byte [bp - 0x1077]
add byte [eax], al
mov ebx, 0x101016d
mov dl, byte [bp - 0x1075]
add byte [eax], al
mov ecx, 0x1010134
mov al, byte [bp - 0x1073]
add byte [eax], al
mov edx, 0x1010133
mov cl, byte [bp - 0x1071]
add byte [eax], al
mov ebx, 0x101012f
mov dl, byte [bp - 0x106f]
add byte [eax], al
mov ecx, 0x1010165
mov al, byte [bp - 0x106d]
add byte [eax], al
mov edx, 0x101016d
mov cl, byte [bp - 0x106b]
add byte [eax], al
mov ebx, 0x101016d
mov dl, byte [bp - 0x1069]
add byte [eax], al
xor al, 0xc1
mov al, byte [bp - 0x1067]
add byte [eax], al
push edx
sub dl, 0x54
imul eax, dword [edx], 0x21f28201
sub al, 2
add dword [edx + 0x22069f2], eax
add dword [edx + 0x52], ebx
push esp
test ch, al
add eax, 0x2d6ea82
add dword [ecx], eax
jmp 0x141aed6