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

Disassembly:
add byte [eax], al
mov dword [ebp - 0x217c], eax
mov ecx, dword [ebp - 0x217c]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x219c], edx
mov eax, dword [ebp - 0x219c]
mov dword [ebp - 0x16e0], eax
push ebx
push ecx
add esp, 4
jmp 0x40a64d
add ebx, 0x2efd
jmp 0x40a659
jmp 0x40a660
pop ebx
push ecx
and ecx, 0x1399d
and ecx, 0x6e98
add ecx, 0x1678c
pop ecx
cmp dword [ebp - 0x16e0], 0
jne 0x40a68d
mov dword [ebp - 0x7a8], 0
jmp 0x40a949
mov ecx, dword [ebp - 0x16e0]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xd58], eax
push edx
push ecx
add esp, 4
and edx, 0x10338
and edx, 0x8514
pop edx
push esi
xor esi, 0xa565
and esi, 0x14e9a
sub esi, 0xf887
pop esi
push eax
push ecx
add esp, 4
or eax, 0x157ad
pop eax
cmp dword [ebp - 0xd58], 0
jne 0x40a6e9
mov dword [ebp - 0x7a8], 0
jmp 0x40a949
mov ecx, dword [ebp - 0xd58]
mov dword [ebp - 0x548], ecx
push edx
or edx, 0x2df1
sub edx, 0x1306d
pop edx
push ebx
push ecx
add esp, 4
and ebx, 0xd498
pop ebx
push edx
push edi
add esp, 4
and edx, 0x4a01
sub edx, 0x50e
sub edx, 0x16937
pop edx
lea edx, [ebp - 0x18b0]
mov dword [ebp - 0xd54], edx
mov eax, dword [ebp - 0x548]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xd50], ecx
xor edx, edx
mov word [ebp - 0x22c], dx
xor eax, eax
mov word [ebp - 0x11c], ax
push ecx
call 0x40a761
add byte [eax + 0x4e], cl
dec ecx
inc ecx
dec eax
add esp, 4
or ecx, 0xccc2
add ecx, 0x16175
pop ecx
push edi
add edi, 0xd288
jmp 0x40a77f
or edi, 0x1d51
pop edi
mov ecx, dword [ebp - 0xd50]
mov dx, word [ecx]
mov word [ebp - 0x1116], dx
mov eax, dword [ebp - 0xd50]
add eax, 2
mov dword [ebp - 0xd50], eax
mov cx, word [ebp - 0x1116]
mov word [ebp - 0x22c], cx
mov edx, dword [ebp - 0xd54]
mov ax, word [edx]
mov word [ebp - 0x1118], ax
mov ecx, dword [ebp - 0xd54]
add ecx, 2
mov dword [ebp - 0xd54], ecx
mov dx, word [ebp - 0x1118]
mov word [ebp - 0x11c], dx
push ecx
jmp 0x40a7e7
pop ecx
push ecx
push ebx
add esp, 4
add ecx, 0x4751
sub ecx, 0xa1ef
and ecx, 0x9680
pop ecx
push edx
push edi
add esp, 4
or edx, 0x5274
xor edx, 0x135fc
pop edx
movzx eax, word [ebp - 0x11c]
test eax, eax
jne 0x40a835
movzx ecx, word [ebp - 0x22c]
movzx edx, word [ebp - 0x11c]
sub ecx, edx
mov dword [ebp - 0x16e8], ecx
jmp 0x40a898
movzx eax, word [ebp - 0x22c]
movzx ecx, word [ebp - 0x11c]
cmp eax, ecx
je 0x40a754
movzx edx, word [ebp - 0x22c]
xor edx, 0x20
movzx eax, word [ebp - 0x11c]
cmp edx, eax
je 0x40a754
movzx ecx, word [ebp - 0x22c]
movzx edx, word [ebp - 0x11c]
cmp ecx, edx
jge 0x40a882
mov dword [ebp - 0x16e4], 0xffffffff
jmp 0x40a88c
mov dword [ebp - 0x16e4], 1
mov eax, dword [ebp - 0x16e4]
mov dword [ebp - 0x16e8], eax
cmp dword [ebp - 0x16e8], 0
jne 0x40a8e1
push eax
or eax, 0x5b73
jmp 0x40a8ae
or eax, 0x16d55
pop eax
push eax
push eax
add esp, 4
add eax, 0x11a70
call 0x40a8cf
add byte [ebx + 0x4d], cl
inc esp
xor al, 0x42
inc ebx
dec edi
inc ecx
inc ebx
add esp, 4
pop eax
mov ecx, dword [ebp - 0x548]
mov dword [ebp - 0x7a8], ecx
jmp 0x40a949
push edi
push edi
add esp, 4
add edi, 0x443
pop edi
push ecx
and ecx, 0x1666e
or ecx, 0x314b
xor ecx, 0x1164f
sub ecx, 0x8332
pop ecx
push ecx
push ecx
add esp, 4
or ecx, 0xd2cb
pop ecx
mov edx, dword [ebp - 0x548]
mov eax, dword [edx]
mov dword [ebp - 0x548], eax
mov ecx, dword [ebp - 0x548]
cmp ecx, dword [ebp - 0xd58]
je 0x40a93f
mov edx, dword [ebp - 0x548]
cmp dword [edx + 0x30], 0
jne 0x40a6f5
mov dword [ebp - 0x7a8], 0
push edx
push ebx
add esp, 4
add edx, 0x16a1e
sub edx, 0x7ac2
jmp 0x40a961
pop edx
push ebx
push ebx
add esp, 4
add ebx, 0x10198
jmp 0x40a974
or ebx, 0x2eab
pop ebx
cmp dword [ebp - 0x7a8], 0
jne 0x40a9c5
push esi
push edx
add esp, 4
add esi, 0xa344
sub esi, 0x2c67
add esi, 0x12dfd
pop esi
push esi
push eax
add esp, 4
or esi, 0xb3d4
and esi, 0x13b4
pop esi
push edi
and edi, 0x15f1a
pop edi
mov dword [ebp - 0x7f4], 0
jmp 0x40b4ec
push edx
push ecx
add esp, 4
xor edx, 0x8ff6
and edx, 0x10631
pop edx
push edx
push edi
add esp, 4
or edx, 0x379a
add edx, 0x1154a
or edx, 0xb92
pop edx
push ebx
add ebx, 0x9bcc
pop ebx
mov eax, dword [ebp - 0x7a8]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x7b8], 0
mov edx, dword [ebp - 0x340]
mov dword [ebp - 0x16ec], edx
cmp dword [ebp - 0x16ec], 0
jne 0x40aa36
mov eax, dword [ebp - 0x7b8]
mov dword [ebp - 0x424], eax
jmp 0x40ad27
mov ecx, dword [ebp - 0x16ec]
mov edx, dword [ebp - 0x340]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x16f0], edx
jne 0x40aa5e
mov eax, dword [ebp - 0x7b8]
mov dword [ebp - 0x424], eax
jmp 0x40ad27
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x16f0]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x16f4], ecx
cmp dword [ebp - 0x16f4], 0
jne 0x40aa90
mov edx, dword [ebp - 0x7b8]
mov dword [ebp - 0x424], edx
jmp 0x40ad27
mov eax, dword [ebp - 0x340]
add eax, dword [ebp - 0x16f4]
mov dword [ebp - 0x7ac], eax
jne 0x40aab5
mov ecx, dword [ebp - 0x7b8]
mov dword [ebp - 0x424], ecx
jmp 0x40ad27
mov edx, dword [ebp - 0x7ac]
mov eax, dword [ebp - 0x340]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x1aac], eax
mov ecx, dword [ebp - 0x7ac]
mov edx, dword [ebp - 0x340]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x1ab0], edx
mov eax, dword [ebp - 0x7ac]
mov ecx, dword [ebp - 0x340]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x1ab4], ecx
mov dword [ebp - 0x7b0], 0
jmp 0x40ab0f
mov edx, dword [ebp - 0x7b0]
add edx, 1
mov dword [ebp - 0x7b0], edx
mov eax, dword [ebp - 0x7ac]
mov ecx, dword [ebp - 0x7b0]
cmp ecx, dword [eax + 0x18]
jae 0x40ad1b
mov edx, dword [ebp - 0x7b0]
mov eax, dword [ebp - 0x1aac]
mov ecx, dword [ebp - 0x340]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x7b4], ecx
mov edx, dword [ebp - 0x7b0]
mov eax, dword [ebp - 0x1ab0]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x1ab4]
mov eax, dword [ebp - 0x340]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x1ab8], eax
mov dword [ebp - 0x1ac], 0
jmp 0x40ab7f
mov ecx, dword [ebp - 0x1ac]
add ecx, 1
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0x7b4]
add edx, dword [ebp - 0x1ac]
movsx eax, byte [edx]
test eax, eax
je 0x40ac31
mov ecx, dword [ebp - 0x1ac]
movsx edx, byte [ebp + ecx - 0x8fc]
test edx, edx
je 0x40ac31
push eax
and eax, 0x6423
and eax, 0x34d5
and eax, 0x1a22
add eax, 0x17f62
pop eax
push eax
push ecx
add esp, 4
or eax, 0x4314
and eax, 0x5995
sub eax, 0x133c7
pop eax
mov eax, dword [ebp - 0x7b4]
add eax, dword [ebp - 0x1ac]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x1ac]
movsx eax, byte [ebp + edx - 0x8fc]
cmp ecx, eax
je 0x40ac23
mov ecx, dword [ebp - 0x7b4]
add ecx, dword [ebp - 0x1ac]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x1ac]
movsx ecx, byte [ebp + eax - 0x8fc]
cmp edx, ecx
jne 0x40ac2a
jmp 0x40ab70
jmp 0x40ac31
push esi
push esi
add esp, 4
add esi, 0x2eb3
or esi, 0x9ab4
pop esi
push eax
add eax, 0xacdc
xor eax, 0xabe8
pop eax
push ebx
push edx
add esp, 4
xor ebx, 0x219b
or ebx, 0x1497e
pop ebx
mov edx, dword [ebp - 0x7b4]
add edx, dword [ebp - 0x1ac]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x1ac]
movsx edx, byte [ebp + ecx - 0x8fc]
cmp eax, edx
jne 0x40ac90
mov dword [ebp - 0xd5c], 0
jmp 0x40acff
push eax
push ecx
add esp, 4
sub eax, 0x965f
jmp 0x40aca1
xor eax, 0xb568
add eax, 0xbfa4
pop eax
push ecx
and ecx, 0x16c56
and ecx, 0xecd1
or ecx, 0x638c
pop ecx
mov eax, dword [ebp - 0x7b4]
add eax, dword [ebp - 0x1ac]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x1ac]
movsx eax, byte [ebp + edx - 0x8fc]
or eax, 0x20
cmp ecx, eax
jge 0x40acf5
mov dword [ebp - 0xd5c], 0xffffffff
jmp 0x40acff
mov dword [ebp - 0xd5c], 1
cmp dword [ebp - 0xd5c], 0
jne 0x40ad16
mov ecx, dword [ebp - 0x1ab8]
mov dword [ebp - 0x424], ecx
jmp 0x40ad27
invalid
jmp 0x40ab00
mov edx, dword [ebp - 0x7b8]
mov dword [ebp - 0x424], edx
cmp dword [ebp - 0x424], 0
je 0x40ae02
push edi
push esi
add esp, 4
and edi, 0x227e
sub edi, 0x3afb
pop edi
push eax
or eax, 0x101ec
call 0x40ad5c
add byte [ecx + 0x37], al
xor edi, dword [ecx]
xor esi, dword [eax + ecx*2]
dec edi
cmp al, 0x83
les eax, [ecx + eax*4]
loopne 0x40ad13
sub dword [ecx], eax
add byte [eax - 0x75], bl
test esp, ebx
sti
invalid
push ebx
push ebx
add esp, 4
sub ebx, 0x9b5
jmp 0x40ae15
add ebx, 0xecae
and ebx, 0x143a2
pop ebx
push edx
push esi
add esp, 4
sub edx, 0x1ea7
sub edx, 0xb9b
pop edx
mov eax, dword fs:[0x18]
mov dword [ebp - 0x1ac4], eax
mov ecx, dword [ebp - 0x1ac4]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x1ac8], edx
mov eax, dword [ebp - 0x1ac8]
mov dword [ebp - 0x16f8], eax
push edi
push esi
add esp, 4
xor edi, 0x1351
and edi, 0x11395
pop edi
push edi
and edi, 0x2ea2
jmp 0x40ae7a
call 0x40ae89
add byte [eax], bh
inc eax
aaa
dec ecx
xor al, 0x3f
xor al, 0x44
add esp, 4
pop edi
cmp dword [ebp - 0x16f8], 0
jne 0x40aea5
mov dword [ebp - 0x324], 0
jmp 0x40b14c
mov ecx, dword [ebp - 0x16f8]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xd68], eax
push edi
push edx
add esp, 4
and edi, 0xd73d
call 0x40aed1
add byte [ebx + 0x3f], al
dec edi
dec ebx
dec edx
cmp al, 0x4b
dec esp
xor eax, dword [ebx - 0x187efb3c]
invalid
push ebx
push edx
add esp, 4
jmp 0x40b159
and ebx, 0x15461
xor ebx, 0xdf9d
pop ebx
push ebx
push ebx
add esp, 4
sub ebx, 0x5fc8
and ebx, 0x83c4
add ebx, 0x678
pop ebx
mov eax, dword [ebp - 0x324]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x344], ecx
push eax
push edx
add esp, 4
jmp 0x40b19b
jmp 0x40b1a0
sub eax, 0x14ae3
or eax, 0xc887
pop eax
push eax
push edx
add esp, 4
les eax, [ecx + eax*4]
rol byte [edi - 0x7efffeec], 0xf0
rcl byte [edi - 0x38a80000], 0x85
cmp al, bh
invalid
inc dword [eax]
add byte [eax], al
add byte [ebx - 0x3436b], cl
dec dword [ecx - 0x17036b]
inc dword [ebx - 0x170343]
inc dword [eax]
jne 0x40b1ef
mov eax, dword [ebp - 0x7c8]
mov dword [ebp - 0x550], eax
jmp 0x40b4e0
mov ecx, dword [ebp - 0x1704]
mov edx, dword [ebp - 0x344]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x1708], edx
jne 0x40b217
mov eax, dword [ebp - 0x7c8]
mov dword [ebp - 0x550], eax
jmp 0x40b4e0
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x1708]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x170c], ecx
cmp dword [ebp - 0x170c], 0
jne 0x40b249
mov edx, dword [ebp - 0x7c8]
mov dword [ebp - 0x550], edx
jmp 0x40b4e0
mov eax, dword [ebp - 0x344]
add eax, dword [ebp - 0x170c]
mov dword [ebp - 0x7bc], eax
jne 0x40b26e
mov ecx, dword [ebp - 0x7c8]
mov dword [ebp - 0x550], ecx
jmp 0x40b4e0
mov edx, dword [ebp - 0x7bc]
mov eax, dword [ebp - 0x344]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x1acc], eax
mov ecx, dword [ebp - 0x7bc]
mov edx, dword [ebp - 0x344]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x1ad0], edx
mov eax, dword [ebp - 0x7bc]
mov ecx, dword [ebp - 0x344]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x1ad4], ecx
mov dword [ebp - 0x7c0], 0
jmp 0x40b2c8