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

Disassembly:
mov ecx, dword [ebp - 0x3f8]
add ecx, 1
mov dword [ebp - 0x3f8], ecx
mov edx, dword [ebp - 0x3f4]
mov eax, dword [ebp - 0x3f8]
cmp eax, dword [edx + 0x18]
jae 0x40a2cb
mov ecx, dword [ebp - 0x3f8]
mov edx, dword [ebp - 0xe78]
mov eax, dword [ebp - 0x1bc]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x3fc], eax
mov ecx, dword [ebp - 0x3f8]
mov edx, dword [ebp - 0xe7c]
movzx eax, word [edx + ecx*2]
mov ecx, dword [ebp - 0xe80]
mov edx, dword [ebp - 0x1bc]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0xe84], edx
mov dword [ebp - 0xc4], 0
jmp 0x40a12f
mov eax, dword [ebp - 0xc4]
add eax, 1
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x3fc]
add ecx, dword [ebp - 0xc4]
movsx edx, byte [ecx]
test edx, edx
je 0x40a1e1
mov eax, dword [ebp - 0xc4]
movsx ecx, byte [ebp + eax - 0x4d0]
test ecx, ecx
je 0x40a1e1
push eax
or eax, 0xb808
add eax, 0xd022
pop eax
push ebx
sub ebx, 0x94ba
pop ebx
push esi
and esi, 0x11b5c
pop esi
push ecx
or ecx, 0xd685
xor ecx, 0x123a4
and ecx, 0x4b09
pop ecx
mov edx, dword [ebp - 0x3fc]
add edx, dword [ebp - 0xc4]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0xc4]
movsx edx, byte [ebp + ecx - 0x4d0]
cmp eax, edx
je 0x40a1d3
mov eax, dword [ebp - 0x3fc]
add eax, dword [ebp - 0xc4]
movsx ecx, byte [eax]
xor ecx, 0x20
mov edx, dword [ebp - 0xc4]
movsx eax, byte [ebp + edx - 0x4d0]
cmp ecx, eax
jne 0x40a1da
jmp 0x40a120
jmp 0x40a1e1
push esi
push edi
add esp, 4
add esi, 0x8ace
sub esi, 0xa7f7
and esi, 0x142e1
xor esi, 0x434a
pop esi
push esi
sub esi, 0xf705
pop esi
push ecx
push ebx
add esp, 4
xor ecx, 0x12b0a
pop ecx
mov ecx, dword [ebp - 0x3fc]
add ecx, dword [ebp - 0xc4]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0xc4]
movsx ecx, byte [ebp + eax - 0x4d0]
cmp edx, ecx
jne 0x40a240
mov dword [ebp - 0x6ec], 0
jmp 0x40a2af
push esi
xor esi, 0x910e
call 0x40a256
add byte [ecx], bh
xor al, 0x41
xor al, 0x34
cmp byte ss:[edx + 0x49], cl
add esp, 4
and esi, 0x10525
pop esi
push eax
push ebx
add esp, 4
xor eax, 0x1af
add eax, 0xa338
pop eax
mov edx, dword [ebp - 0x3fc]
add edx, dword [ebp - 0xc4]
movsx eax, byte [edx]
or eax, 0x20
mov ecx, dword [ebp - 0xc4]
movsx edx, byte [ebp + ecx - 0x4d0]
or edx, 0x20
cmp eax, edx
jge 0x40a2a5
mov dword [ebp - 0x6ec], 0xffffffff
jmp 0x40a2af
mov dword [ebp - 0x6ec], 1
cmp dword [ebp - 0x6ec], 0
jne 0x40a2c6
mov eax, dword [ebp - 0xe84]
mov dword [ebp - 0x240], eax
jmp 0x40a2d7
jmp 0x40a0b0
mov ecx, dword [ebp - 0x400]
mov dword [ebp - 0x240], ecx
cmp dword [ebp - 0x240], 0
je 0x40a3b2
push esi
push edi
add esp, 4
xor esi, 0x16a89
or esi, 0x16fc4
pop esi
push esi
push ebx
add esp, 4
or esi, 0xad69
xor esi, 0xf5bd
pop esi
push ecx
xor ecx, 0x324b
sub ecx, 0x115c6
pop ecx
mov edx, dword [ebp - 0x240]
mov dword [ebp - 0xe88], edx
push edx
call 0x40a332
add byte [0x41464434], bh
dec esp
cmp edi, dword [ebx]
cmp byte [ebx + 0x6eb04c4], al
xor al, 0x4d
xor edi, dword [edi]
cmp dword [0x454806eb], esi
push eax
dec edi
inc edx
pop edx
push edi
or edi, 0x475e
xor edi, 0x4a27
pop edi
mov eax, dword [ebp - 0xe88]
mov dword [ebp - 0xe8c], eax
lea ecx, [ebp - 0xc50]
push ecx
call dword [ebp - 0xe8c]
test eax, eax
jne 0x40a3b2
push eax
push eax
add esp, 4
sub eax, 0x6447
sub eax, 0x13680
add eax, 0x18153
xor eax, 0xdc2d
pop eax
push edi
push edi
add esp, 4
and edi, 0x14bd9
pop edi
push ebx
or ebx, 0x2872
pop ebx
mov dword [ebp - 0x618], 0
jmp 0x40aa9d
push esi
push ebx
add esp, 4
or esi, 0x3d45
pop esi
push eax
add eax, 0x28a7
add eax, 0x7522
or eax, 0x2ee5
pop eax
push ecx
push edi
add esp, 4
sub ecx, 0xf8c4
or ecx, 0x16ed
pop ecx
mov edx, dword fs:[0x18]
mov dword [ebp - 0xe90], edx
mov eax, dword [ebp - 0xe90]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xe94], ecx
mov edx, dword [ebp - 0xe94]
mov dword [ebp - 0xbf4], edx
push edx
call 0x40a41a
add byte [0x3a354033], bh
inc ebp
inc edx
add esp, 4
pop edx
push edi
call 0x40a42e
add byte [edx + 0x44], al
cmp eax, 0x364e3446
inc ebp
add esp, 4
xor edi, 0x10215
and edi, 0x149b
pop edi
cmp dword [ebp - 0xbf4], 0
jne 0x40a456
mov dword [ebp - 0x18c], 0
jmp 0x40a6fd
mov eax, dword [ebp - 0xbf4]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x6f8], edx
push edx
call 0x40a478
add byte [ebx + 0x49], al
dec eax
inc ebp
cmp eax, 0x45434934
add esp, 4
xor edx, 0x1378f
and edx, 0x107a6
call 0x40a496
add byte [ecx], bh
cmp al, byte [esi + 0x50]
push eax
dec esp
inc esp
inc edi
add esp, 4
pop edx
cmp dword [ebp - 0x6f8], 0
jne 0x40a4b2
mov dword [ebp - 0x18c], 0
jmp 0x40a6fd
mov eax, dword [ebp - 0x6f8]
mov dword [ebp - 0x244], eax
push ecx
jmp 0x40a4c7
or ecx, 0x2087
and ecx, 0x7b72
pop ecx
push edx
sub edx, 0x170da
pop edx
push eax
sub eax, 0x12730
add eax, 0x113ae
or eax, 0x142fa
pop eax
lea ecx, [ebp - 0xc50]
mov dword [ebp - 0x6f4], ecx
mov edx, dword [ebp - 0x244]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x6f0], eax
xor ecx, ecx
mov word [ebp - 0x128], cx
xor edx, edx
mov word [ebp - 0x3c], dx
push edx
add edx, 0xe005
pop edx
push edi
jmp 0x40a52b
pop edi
push eax
push ecx
add esp, 4
sub eax, 0x17821
sub eax, 0x137df
and eax, 0x478e
pop eax
push edi
or edi, 0x8902
pop edi
mov eax, dword [ebp - 0x6f0]
mov cx, word [eax]
mov word [ebp - 0x896], cx
mov edx, dword [ebp - 0x6f0]
add edx, 2
mov dword [ebp - 0x6f0], edx
mov ax, word [ebp - 0x896]
mov word [ebp - 0x128], ax
mov ecx, dword [ebp - 0x6f4]
mov dx, word [ecx]
mov word [ebp - 0x898], dx
mov eax, dword [ebp - 0x6f4]
add eax, 2
mov dword [ebp - 0x6f4], eax
mov cx, word [ebp - 0x898]
mov word [ebp - 0x3c], cx
push edi
push edi
add esp, 4
add edi, 0xaa89
sub edi, 0xa9b
pop edi
push ebx
push esi
add esp, 4
jmp 0x40a5c2
sub ebx, 0x91be
xor ebx, 0x72e8
add ebx, 0xca27
pop ebx
movzx edx, word [ebp - 0x3c]
test edx, edx
jne 0x40a5f2
movzx eax, word [ebp - 0x128]
movzx ecx, word [ebp - 0x3c]
sub eax, ecx
mov dword [ebp - 0xbfc], eax
jmp 0x40a64c
movzx edx, word [ebp - 0x128]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
je 0x40a51a
movzx ecx, word [ebp - 0x128]
xor ecx, 0x20
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x40a51a
movzx eax, word [ebp - 0x128]
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
jge 0x40a636
mov dword [ebp - 0xbf8], 0xffffffff
jmp 0x40a640
mov dword [ebp - 0xbf8], 1
mov edx, dword [ebp - 0xbf8]
mov dword [ebp - 0xbfc], edx
cmp dword [ebp - 0xbfc], 0
jne 0x40a695
push edx
sub edx, 0x17466
add edx, 0x17eef
xor edx, 0xb5e0
xor edx, 0x176dd
pop edx
push esi
push ecx
add esp, 4
or esi, 0x12e1b
add esi, 0x18069
sub esi, 0xd9fa
pop esi
mov eax, dword [ebp - 0x244]
mov dword [ebp - 0x18c], eax
jmp 0x40a6fd
push ecx
push edx
add esp, 4
or ecx, 0xeae6
add ecx, 0xc50b
or ecx, 0x5754
or ecx, 0xaeec
pop ecx
push eax
jmp 0x40a6ba
xor eax, 0x11ddc
add eax, 0xe303
pop eax
mov ecx, dword [ebp - 0x244]
mov edx, dword [ecx]
mov dword [ebp - 0x244], edx
mov eax, dword [ebp - 0x244]
cmp eax, dword [ebp - 0x6f8]
je 0x40a6f3
mov ecx, dword [ebp - 0x244]
cmp dword [ecx + 0x30], 0
jne 0x40a4be
mov dword [ebp - 0x18c], 0
push edx
push ecx
add esp, 4
jmp 0x40a709
jmp 0x40a70e
pop edx
push edi
push ebx
add esp, 4
or edi, 0x130b
or edi, 0x9c92
jmp 0x40a726
pop edi
push ebx
and ebx, 0x8c3
pop ebx
mov edx, dword [ebp - 0x18c]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x1c0], eax
push ebx
push edx
add esp, 4
jmp 0x40a74a
and ebx, 0x1ecd
jmp 0x40a755
pop ebx
push ecx
sub ecx, 0x143d7
xor ecx, 0x17d8f
add ecx, 0x17133
and ecx, 0x15c6e
pop ecx
mov dword [ebp - 0x410], 0
mov ecx, dword [ebp - 0x1c0]
mov dword [ebp - 0xc00], ecx
cmp dword [ebp - 0xc00], 0
jne 0x40a7a0
mov edx, dword [ebp - 0x410]
mov dword [ebp - 0x2ec], edx
jmp 0x40aa91
mov eax, dword [ebp - 0xc00]
mov ecx, dword [ebp - 0x1c0]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 0xc04], ecx
jne 0x40a7c8
mov edx, dword [ebp - 0x410]
mov dword [ebp - 0x2ec], edx
jmp 0x40aa91
mov eax, 8
imul ecx, eax, 0
mov edx, dword [ebp - 0xc04]
mov eax, dword [edx + ecx + 0x78]
mov dword [ebp - 0xc08], eax
cmp dword [ebp - 0xc08], 0
jne 0x40a7fa
mov ecx, dword [ebp - 0x410]
mov dword [ebp - 0x2ec], ecx
jmp 0x40aa91
mov edx, dword [ebp - 0x1c0]
add edx, dword [ebp - 0xc08]
mov dword [ebp - 0x404], edx
jne 0x40a81f
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x2ec], eax
jmp 0x40aa91
mov ecx, dword [ebp - 0x404]
mov edx, dword [ebp - 0x1c0]
add edx, dword [ecx + 0x20]
mov dword [ebp - 0xe98], edx
mov eax, dword [ebp - 0x404]
mov ecx, dword [ebp - 0x1c0]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0xe9c], ecx
mov edx, dword [ebp - 0x404]
mov eax, dword [ebp - 0x1c0]
add eax, dword [edx + 0x1c]
mov dword [ebp - 0xea0], eax
mov dword [ebp - 0x408], 0
jmp 0x40a879
mov ecx, dword [ebp - 0x408]
add ecx, 1
mov dword [ebp - 0x408], ecx
mov edx, dword [ebp - 0x404]
mov eax, dword [ebp - 0x408]
cmp eax, dword [edx + 0x18]
jae 0x40aa85
mov ecx, dword [ebp - 0x408]
mov edx, dword [ebp - 0xe98]
mov eax, dword [ebp - 0x1c0]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x40c], eax
mov ecx, dword [ebp - 0x408]
mov edx, dword [ebp - 0xe9c]
movzx eax, word [edx + ecx*2]
mov ecx, dword [ebp - 0xea0]
mov edx, dword [ebp - 0x1c0]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0xea4], edx
mov dword [ebp - 0xc0], 0
jmp 0x40a8e9
mov eax, dword [ebp - 0xc0]
add eax, 1
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0x40c]
add ecx, dword [ebp - 0xc0]
movsx edx, byte [ecx]
test edx, edx
je 0x40a99b
mov eax, dword [ebp - 0xc0]
movsx ecx, byte [ebp + eax - 0x598]
test ecx, ecx
je 0x40a99b
push eax
push ebx
add esp, 4
sub eax, 0xa892
pop eax
push ebx
xor ebx, 0x39e9
jmp 0x40a92f
xor ebx, 0x264d
pop ebx
push edx
push edi
add esp, 4
add edx, 0x4f47
or edx, 0x14818
pop edx
mov edx, dword [ebp - 0x40c]
add edx, dword [ebp - 0xc0]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0xc0]
movsx edx, byte [ebp + ecx - 0x598]
cmp eax, edx
je 0x40a98d
mov eax, dword [ebp - 0x40c]
add eax, dword [ebp - 0xc0]
movsx ecx, byte [eax]
xor ecx, 0x20
mov edx, dword [ebp - 0xc0]
movsx eax, byte [ebp + edx - 0x598]
cmp ecx, eax
jne 0x40a994
jmp 0x40a8da
jmp 0x40a99b
push esi
push eax
add esp, 4
or esi, 0x14233
and esi, 0x3f0f
xor esi, 0x14317
or esi, 0x74c6
pop esi
push ecx
or ecx, 0xf2b4
or ecx, 0xfa6c
sub ecx, 0x5a5c
pop ecx
mov ecx, dword [ebp - 0x40c]
add ecx, dword [ebp - 0xc0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0xc0]
movsx ecx, byte [ebp + eax - 0x598]
cmp edx, ecx
jne 0x40a9fa
mov dword [ebp - 0x6fc], 0
jmp 0x40aa69
push eax
push esi
add esp, 4
call 0x40aa0e
add byte [ecx + 0x4c], al
inc esi
aaa
dec esp
push eax
dec ebx
cmp dword [ebp - 0x7d], ecx
les eax, [eax + ebx*2]
push edx
and edx, 0x5f03
and edx, 0x4808
xor edx, 0x72c
xor edx, 0x9679
pop edx
mov edx, dword [ebp - 0x40c]
add edx, dword [ebp - 0xc0]
movsx eax, byte [edx]
or eax, 0x20
mov ecx, dword [ebp - 0xc0]
movsx edx, byte [ebp + ecx - 0x598]
or edx, 0x20
cmp eax, edx
jge 0x40aa5f
mov dword [ebp - 0x6fc], 0xffffffff
jmp 0x40aa69
mov dword [ebp - 0x6fc], 1
cmp dword [ebp - 0x6fc], 0
jne 0x40aa80
mov eax, dword [ebp - 0xea4]
mov dword [ebp - 0x2ec], eax
jmp 0x40aa91
jmp 0x40a86a
mov ecx, dword [ebp - 0x410]
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x618], edx
push eax
push edi
add esp, 4
xor eax, 0x178ce
and eax, 0xd76d
add eax, 0x3f91
pop eax
push edx
xor edx, 0xdb2c
add edx, 0x9084
or edx, 0x9506
jmp 0x40aace
pop edx
mov eax, dword [ebp - 0x618]
mov dword [ebp - 0xea8], eax
lea ecx, [ebp - 0x700]
push ecx
push 0x40
mov edx, dword [ebp - 0xc0c]
push edx
mov eax, dword [ebp - 0x228]
push eax
call dword [ebp - 0xea8]
test eax, eax
jne 0x40ab42
push ebx
sub ebx, 0x15c03
jmp 0x40ab0c
or ebx, 0x13017
jmp 0x40ab17
pop ebx
push ecx
and ecx, 0xdf87
pop ecx
push ebx
or ebx, 0x8439
xor ebx, 0x6a79
pop ebx
mov ecx, dword [ebp - 0x418]
mov dword [ebp - 0xeac], ecx
push 0
call dword [ebp - 0xeac]
mov edx, dword [ebp - 0xeb0]
mov dword [ebp - 0x414], edx
jmp 0x40ab5f
mov eax, dword [ebp - 0x414]
add eax, 1
mov dword [ebp - 0x414], eax
mov ecx, dword [ebp - 0x414]
cmp ecx, dword [ebp - 0x614]
jae 0x40abbb
push edx
push edi
add esp, 4
and edx, 0x15fe4
or edx, 0x8398
sub edx, 0xf24e
and edx, 0x4880
pop edx
push ebx
add ebx, 0x11189
or ebx, 0xb4c
and ebx, 0xef91
pop ebx
movzx edx, byte [ebp - 0x1fd]
mov eax, dword [ebp - 0x414]
movsx ecx, byte [eax]
sub ecx, edx
mov edx, dword [ebp - 0x414]
mov byte [edx], cl
jmp 0x40ab50
mov eax, dword [ebp - 0x618]
mov dword [ebp - 0xeb4], eax
lea ecx, [ebp - 0x700]
push ecx
mov edx, dword [ebp - 0x700]
push edx
mov eax, dword [ebp - 0xc0c]
push eax
mov ecx, dword [ebp - 0x228]
push ecx
call dword [ebp - 0xeb4]
test eax, eax
jne 0x40ac33
push eax
push edx
add esp, 4
and eax, 0x152f0
sub eax, 0xbfa3
xor eax, 0x6a01
pop eax
push esi
add esi, 0xeec2
add esi, 0x93c6
xor esi, 0xb3dd
xor esi, 0x5c38
pop esi
mov edx, dword [ebp - 0x418]
mov dword [ebp - 0xeb8], edx
push 0
call dword [ebp - 0xeb8]
push eax
push ecx
add esp, 4
xor eax, 0x2429
sub eax, 0x17078
or eax, 0x93fe
xor eax, 0x8ba9
pop eax
push ecx
push eax
add esp, 4
add ecx, 0x4865
pop ecx
push esi
xor esi, 0xf66b
pop esi
push ecx
mov ecx, 0x10101010
pop ecx
push ecx
mov ecx, 0xffff08ff
pop ecx
pop ebx
mov ebx, ebp
jne 0x40ac87
or dword [eax], ecx
lock adc ecx, dword [eax]
or byte [eax], cl
or byte [ebx], bh
inc esp
push eax
push edx
inc ecx
push eax
cmp ecx, dword [edx + 0x40]
dec edx
inc eax
push edi
mov ecx, esp
or al, 0xf0
invd
or byte [eax], cl
or byte [ebx], bh
aas
dec eax
dec ecx
push esi
aas
mov ecx, esp
or al, 0x63
pop edx
mov edx, edi
xchg edi, eax
push ecx
or dword [eax], ecx
invalid