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

Disassembly:
push esi
and esi, 0xfdf8
xor esi, 0x12ef3
or esi, 0xcd94
pop esi
push esi
push edi
add esp, 4
xor esi, 0x30c
add esi, 0x140af
xor esi, 0xb03a
sub esi, 0x14475
pop esi
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
jmp 0x409ddc
xor edi, 0x381f
jmp 0x409deb
pop edi
push ebx
or ebx, 0x5996
add ebx, 0x2d8
sub ebx, 0x81aa
or ebx, 0x9d9c
pop ebx
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 edi
add esp, 4
xor edx, 0x1505e
jmp 0x409e70
xor edx, 0xfbe1
and edx, 0x509f
pop edx
push ecx
push esi
add esp, 4
or ecx, 0xe86f
and ecx, 0xdc45
pop ecx
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x409eac
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x1668], edx
jmp 0x409f06
movzx ecx, word [ebp - 0x220]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je fcn.00409dd4
movzx eax, word [ebp - 0x220]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je fcn.00409dd4
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x409ef0
mov dword [ebp - 0x1624], 0xffffffff
jmp 0x409efa
mov dword [ebp - 0x1624], 1
mov ecx, dword [ebp - 0x1624]
cmp dword [ebp - 0x1668], 0
jne 0x409f4f
push ebx
xor ebx, 0x17b13
jmp 0x409f1c
add ebx, 0x1330f
add ebx, 0x16240
pop ebx
push edi
push esi
add esp, 4
and edi, 0xa1ae
xor edi, 0x12918
or edi, 0x3dfb
pop edi
mov edx, dword [ebp - 0x518]
mov dword [ebp - 0x774], edx
jmp 0x409fb7
push ecx
and ecx, 0x5452
sub ecx, 0x5e59
pop ecx
push ebx
jmp 0x409f66
pop ebx
push ebx
call 0x409f77
add byte [edi + edi], dh
cmp dword [edx], esi
dec eax
inc eax
cmp al, 0x40
dec edx
add esp, 4
sub ebx, 0x8ff5
pop ebx
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 0x409fad
mov eax, dword [ebp - 0x518]
cmp dword [eax + 0x30], 0
jne 0x409d78
mov dword [ebp - 0x774], 0
push esi
push eax
add esp, 4
jmp 0x409fc4
jmp 0x409fcc
pop esi
push edx
jmp 0x409fd5
pop edx
push ebx
call 0x409fe5
add byte [edx + 0x45], al
dec ecx
cmp bh, byte [0x83404133]
les eax, [ebx + ebx*2]
cmp dword [ebp - 0x774], 0
jne 0x40a033
push eax
push esi
add esp, 4
sub eax, 0x6043
xor eax, 0x7780
pop eax
push ebx
push edi
add esp, 4
and ebx, 0x5878
or ebx, 0x16175
sub ebx, 0x17afe
pop ebx
push edi
sub edi, 0x1394c
pop edi
mov dword [ebp - 0xab4], 0
jmp 0x40ab5b
push esi
push ecx
add esp, 4
call 0x40a045
add byte [edx], bh
inc edi
aas
aas
dec esi
aas
cmp byte [ebx - 0x197efb3c], al
shr dh, 1
add byte [eax], al
and esi, 0x1208e
call 0x40a061
add byte [ecx + 0x4e], cl
cmp byte [edi], dh
dec ebp
inc edx
dec esi
add esp, 4
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
jne 0x40a0a4
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], ecx
jmp 0x40a395
mov edx, dword [ebp - 0x166c]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1670], eax
jne 0x40a0cc
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], ecx
jmp 0x40a395
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 0x40a0fe
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], eax
jmp 0x40a395
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [ebp - 0x1678]
mov dword [ebp - 0x778], ecx
jne 0x40a123
mov edx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], edx
jmp 0x40a395
mov eax, dword [ebp - 0x778]
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x19a4], ecx
mov edx, dword [ebp - 0x778]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x19a8], eax
mov ecx, dword [ebp - 0x778]
mov edx, dword [ebp - 0x3a4]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x19ac], edx
mov dword [ebp - 0x77c], 0
jmp 0x40a17d
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 0x40a389
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 0x40a1ed
mov eax, dword [ebp - 0x780]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40a29f
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x8a4]
test eax, eax
je 0x40a29f
push ebx
jmp 0x40a222
and ebx, 0xbc71
pop ebx
push edx
xor edx, 0x298a
pop edx
push ebx
push edx
add esp, 4
jmp 0x40a23f
and ebx, 0x15813
and ebx, 0x987
pop ebx
mov ecx, dword [ebp - 0x780]
add ecx, dword [ebp - 0x1a0]
push edx
push ecx
add esp, 4
add edx, 0x7195
sub edx, 0x8308
add edx, 0xa5c2
pop edx
push esi
push ecx
add esp, 4
add esi, 0x2b0c
pop esi
push eax
and eax, 0x15c0c
or eax, 0x12088
pop eax
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 0x40a2fe
mov dword [ebp - 0xcd4], 0
jmp 0x40a36d
push eax
push ebx
add esp, 4
sub eax, 0xee4a
or eax, 0xa3f8
jmp 0x40a317
pop eax
push esi
push ebx
add esp, 4
sub esi, 0x15163
sub esi, 0x16913
or esi, 0xe604
pop esi
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 0x40a363
mov dword [ebp - 0xcd4], 0xffffffff
jmp 0x40a36d
mov dword [ebp - 0xcd4], 1
cmp dword [ebp - 0xcd4], 0
jne 0x40a384
mov edx, dword [ebp - 0x19b0]
mov dword [ebp - 0x3f8], edx
jmp 0x40a395
jmp 0x40a16e
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], eax
cmp dword [ebp - 0x3f8], 0
je 0x40a470
push eax
push edi
add esp, 4
jmp 0x40a3ac
pop eax
push ecx
push edi
add esp, 4
call 0x40a3c2
add byte [ebp + 0x38], cl
cmp al, byte [edx + 0x45]
inc ecx
xor dh, byte [ebx]
inc edx
inc edx
add esp, 4
and ecx, 0x165e5
pop ecx
push ebx
sub ebx, 0xb5c
pop ebx
mov ecx, dword [ebp - 0x3f8]
mov dword [ebp - 0x19b4], ecx
push ebx
or ebx, 0x5856
or ebx, 0xb11a
sub ebx, 0x1021f
add byte [ecx + 0xfc02e3], al
add byte [ebx + 0x56], bl
push eax
add esp, 4
or esi, 0x7ebb
sub esi, 0x13f1e
or esi, 0x23a0
pop esi
mov edx, dword [ebp - 0x19b4]
mov dword [ebp - 0x19b8], edx
lea eax, [ebp - 0x1738]
push eax
call 0x40a47e
add byte [edi + 0x4c], al
push eax
dec esp
cmp al, byte [eax + 0x4f]
add esp, 4
jmp 0x40a489
sub eax, 0xb139
xor eax, 0x8c6c
pop eax
push ebx
push ebx
add esp, 4
and ebx, 0x962
pop ebx
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19bc], ecx
mov edx, dword [ebp - 0x19bc]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19c0], eax
mov ecx, dword [ebp - 0x19c0]
mov dword [ebp - 0x167c], ecx
push ecx
push esi
add esp, 4
or ecx, 0xff18
xor ecx, 0x18254
xor ecx, 0x7a98
pop ecx
push edi
push edi
add esp, 4
or edi, 0x115eb
jmp 0x40a4f5
add edi, 0xecf6
pop edi
cmp dword [ebp - 0x167c], 0
jne 0x40a514
invalid
invalid
add al, 0xfd
push edx
push ecx
add esp, 4
sub edx, 0x16f2e
or edx, 0x14041
pop edx
push eax
call 0x40ab7e
add byte [esi + 0x47], al
push eax
cmp dh, byte [ebx]
cmp esi, dword ds:[0xc4834144]
add al, 0x58
push eax
jmp 0x40ab8c
pop eax
mov edx, dword [ebp - 0xab4]
mov dword [ebp - 0x19d4], edx
lea eax, [ebp - 0xce8]
push eax
push 0x40
invalid
invalid
insb byte es:[edi], dx
invalid