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

Disassembly:
add esp, 4
pop edi
push ebx
add ebx, 0x7f9f
or ebx, 0x453d
add ebx, 0x4f31
pop ebx
cmp dword [ebp - 0x16a8], 0
jne 0x409f05
mov dword [ebp - 0x2fc], 0
jmp 0x40a1ac
mov edx, dword [ebp - 0x16a8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcfc], ecx
push edx
jmp 0x409f21
pop edx
push edx
jmp 0x409f2c
or edx, 0x10e89
or edx, 0x791c
jmp 0x409f40
pop edx
push ecx
sub ecx, 0x10929
pop ecx
cmp dword [ebp - 0xcfc], 0
jne 0x409f61
mov dword [ebp - 0x2fc], 0
jmp 0x40a1ac
mov edx, dword [ebp - 0xcfc]
mov dword [ebp - 0x440], edx
push ebx
push edx
add esp, 4
add ebx, 0x17444
xor ebx, 0xe36b
pop ebx
push edx
push esi
add esp, 4
jmp 0x409f8c
pop edx
push edx
push eax
add esp, 4
and edx, 0x119f3
add edx, 0x125d3
pop edx
lea eax, [ebp - 0x1770]
mov dword [ebp - 0xcf8], eax
mov ecx, dword [ebp - 0x440]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xcf4], edx
xor eax, eax
mov word [ebp - 0x1d0], ax
xor ecx, ecx
mov word [ebp - 0x3c], cx
push edi
add edi, 0x167ed
call 0x409fdf
add byte [ebx], dh
cmp eax, dword [esi + 0x3f]
inc esp
inc esi
dec edi
dec eax
aaa
add esp, 4
jmp 0x409fe8
and edi, 0x4707
pop edi
push eax
push edi
add esp, 4
and eax, 0x14073
pop eax
mov edx, dword [ebp - 0xcf4]
mov ax, word [edx]
mov word [ebp - 0x106e], ax
mov ecx, dword [ebp - 0xcf4]
add ecx, 2
mov dword [ebp - 0xcf4], ecx
mov dx, word [ebp - 0x106e]
mov word [ebp - 0x1d0], dx
mov eax, dword [ebp - 0xcf8]
mov cx, word [eax]
mov word [ebp - 0x1070], cx
mov edx, dword [ebp - 0xcf8]
add edx, 2
mov dword [ebp - 0xcf8], edx
mov ax, word [ebp - 0x1070]
mov word [ebp - 0x3c], ax
push ebx
or ebx, 0x16638
pop ebx
push edx
push ecx
add esp, 4
call 0x40a06e
add byte [edx + eax*2], dh
cmp al, 0x37
cmp dword [edx + 0x47], eax
inc ecx
dec ebx
add esp, 4
xor edx, 0xdd4
and edx, 0x10ec1
sub edx, 0xef09
pop edx
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x40a0a1
movzx edx, word [ebp - 0x1d0]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x16b0], edx
jmp 0x40a0fb
movzx ecx, word [ebp - 0x1d0]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x409fc9
movzx eax, word [ebp - 0x1d0]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je 0x409fc9
movzx edx, word [ebp - 0x1d0]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x40a0e5
mov dword [ebp - 0x16ac], 0xffffffff
jmp 0x40a0ef
mov dword [ebp - 0x16ac], 1
mov ecx, dword [ebp - 0x16ac]
mov dword [ebp - 0x16b0], ecx
cmp dword [ebp - 0x16b0], 0
jne 0x40a144
push edx
or edx, 0x39a8
and edx, 0x16470
sub edx, 0x99c9
or edx, 0x11877
pop edx
push esi
push ecx
add esp, 4
sub esi, 0xe2ec
pop esi
push esi
push esi
add esp, 4
sub esi, 0x6a8
pop esi
mov edx, dword [ebp - 0x440]
mov dword [ebp - 0x2fc], edx
jmp 0x40a1ac
push ecx
sub ecx, 0xe22d
call 0x40a15a
add byte [eax + 0x4e], cl
cmp eax, 0x4b44454f
add esp, 4
jmp 0x40a166
call 0x40a172
add byte [edx + 0x45], al
cmp eax, 0x83414849
les eax, [ecx + ebx*2]
mov eax, dword [ebp - 0x440]
mov ecx, dword [eax]
mov dword [ebp - 0x440], ecx
mov edx, dword [ebp - 0x440]
cmp edx, dword [ebp - 0xcfc]
je 0x40a1a2
mov eax, dword [ebp - 0x440]
cmp dword [eax + 0x30], 0
jne 0x409f6d
mov dword [ebp - 0x2fc], 0
push eax
xor eax, 0x3e9c
and eax, 0x5244
sub eax, 0x8bf5
add eax, 0x11ff1
pop eax
push ebx
push eax
add esp, 4
and ebx, 0x13c86
sub ebx, 0x8f8b
or ebx, 0x8205
pop ebx
mov ecx, dword [ebp - 0x2fc]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x3a0], edx
push ecx
push esi
add esp, 4
xor ecx, 0x5e2b
or ecx, 0x17538
and ecx, 0x11923
sub ecx, 0x1122f
pop ecx
push edx
add edx, 0x12456
xor edx, 0x2f
xor edx, 0xdad5
pop edx
mov dword [ebp - 0x7a4], 0
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x16b4], eax
cmp dword [ebp - 0x16b4], 0
jne 0x40a24f
mov ecx, dword [ebp - 0x7a4]
mov dword [ebp - 0x43c], ecx
jmp 0x40a540
mov edx, dword [ebp - 0x16b4]
mov eax, dword [ebp - 0x3a0]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x16b8], eax
jne 0x40a277
mov ecx, dword [ebp - 0x7a4]
mov dword [ebp - 0x43c], ecx
jmp 0x40a540
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x16b8]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x16bc], edx
cmp dword [ebp - 0x16bc], 0
jne 0x40a2a9
mov eax, dword [ebp - 0x7a4]
mov dword [ebp - 0x43c], eax
jmp 0x40a540
mov ecx, dword [ebp - 0x3a0]
add ecx, dword [ebp - 0x16bc]
mov dword [ebp - 0x798], ecx
jne 0x40a2ce
mov edx, dword [ebp - 0x7a4]
mov dword [ebp - 0x43c], edx
jmp 0x40a540
mov eax, dword [ebp - 0x798]
mov ecx, dword [ebp - 0x3a0]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x19fc], ecx
mov edx, dword [ebp - 0x798]
mov eax, dword [ebp - 0x3a0]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x1a00], eax
mov ecx, dword [ebp - 0x798]
mov edx, dword [ebp - 0x3a0]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1a04], edx
mov dword [ebp - 0x79c], 0
jmp 0x40a328
mov eax, dword [ebp - 0x79c]
add eax, 1
mov dword [ebp - 0x79c], eax
mov ecx, dword [ebp - 0x798]
mov edx, dword [ebp - 0x79c]
cmp edx, dword [ecx + 0x18]
jae 0x40a534
mov eax, dword [ebp - 0x79c]
mov ecx, dword [ebp - 0x19fc]
mov edx, dword [ebp - 0x3a0]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x7a0], edx
mov eax, dword [ebp - 0x79c]
mov ecx, dword [ebp - 0x1a00]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x1a04]
mov ecx, dword [ebp - 0x3a0]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x1a08], ecx
mov dword [ebp - 0x158], 0
jmp 0x40a398
mov edx, dword [ebp - 0x158]
add edx, 1
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x7a0]
add eax, dword [ebp - 0x158]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40a44a
mov edx, dword [ebp - 0x158]
movsx eax, byte [ebp + edx - 0x9f4]
test eax, eax
je 0x40a44a
push edi
add edi, 0xe445
and edi, 0xf1a
or edi, 0x26fc
or edi, 0xa4c9
pop edi
push ecx
xor ecx, 0x3728
jmp 0x40a3ee
jmp 0x40a3f6
pop ecx
mov ecx, dword [ebp - 0x7a0]
add ecx, dword [ebp - 0x158]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x158]
movsx ecx, byte [ebp + eax - 0x9f4]
cmp edx, ecx
je 0x40a43c
mov edx, dword [ebp - 0x7a0]
add edx, dword [ebp - 0x158]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x158]
movsx edx, byte [ebp + ecx - 0x9f4]
cmp eax, edx
jne 0x40a443
jmp 0x40a389
jmp 0x40a44a
push eax
push eax
add esp, 4
call 0x40a45d
add byte [esi + 0x3e], al
dec ebp
xor esi, dword [eax*2 - 0x3b7cb7b1]
add al, 0x58
push eax
push eax
add esp, 4
sub eax, 0x17c2a
jmp 0x40a475
xor eax, 0xa8df
pop eax
mov eax, dword [ebp - 0x7a0]
add eax, dword [ebp - 0x158]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x158]
movsx eax, byte [ebp + edx - 0x9f4]
cmp ecx, eax
jne 0x40a4a9
mov dword [ebp - 0xd00], 0
jmp 0x40a518
push eax
push edx
add esp, 4
add eax, 0x16ab
and eax, 0xa2c5
xor eax, 0x1471
pop eax
push eax
or eax, 0x3ac8
or eax, 0x8c5d
and eax, 0x14116
sub eax, 0x7025
pop eax
mov ecx, dword [ebp - 0x7a0]
add ecx, dword [ebp - 0x158]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x158]
movsx ecx, byte [ebp + eax - 0x9f4]
or ecx, 0x20
cmp edx, ecx
jge 0x40a50e
mov dword [ebp - 0xd00], 0xffffffff
jmp 0x40a518
mov dword [ebp - 0xd00], 1
cmp dword [ebp - 0xd00], 0
jne 0x40a52f
mov edx, dword [ebp - 0x1a08]
mov dword [ebp - 0x43c], edx
jmp 0x40a540
jmp 0x40a319
mov eax, dword [ebp - 0x7a4]
mov dword [ebp - 0x43c], eax
mov ecx, dword [ebp - 0x43c]
mov dword [ebp - 0xa80], ecx