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

Disassembly:
push esi
push esi
add esp, 4
and esi, 0x2310
xor esi, 0x16356
or esi, 0xd84
pop esi
push ecx
call 0x40757d
add byte [esp + esi], bh
dec ecx
xor cl, byte [edi + 0x4e]
xor al, 0x38
dec eax
add esp, 4
and ecx, 0x87a1
pop ecx
lea eax, [ebp - 0x1774]
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
or edi, 0x18381
and edi, 0xd17d
pop edi
push esi
push eax
add esp, 4
add esi, 0x706d
xor esi, 0x2dc
add esi, 0xf06
pop esi
push edi
push ecx
add esp, 4
xor edi, 0x11d05
pop edi
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 ebx
push edi
add esp, 4
add ebx, 0x3b7
or ebx, 0xc06e
xor ebx, 0x619f
xor ebx, 0xdbd7
pop ebx
push ebx
xor ebx, 0x112bc
sub ebx, 0xb5b2
add ebx, 0xcc80
pop ebx
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x407689
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x166c], edx
jmp 0x4076e3
movzx ecx, word [ebp - 0x220]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x4075b1
movzx eax, word [ebp - 0x220]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je 0x4075b1
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x4076cd
mov dword [ebp - 0x1668], 0xffffffff
jmp 0x4076d7
mov dword [ebp - 0x1668], 1
mov ecx, dword [ebp - 0x1668]
mov dword [ebp - 0x166c], ecx
cmp dword [ebp - 0x166c], 0
jne 0x40772c
push edx
push ecx
add esp, 4
add edx, 0x69c7
pop edx
push esi
add esi, 0xa2cb
xor esi, 0x1295
add esi, 0xddf9
pop esi
push ebx
push eax
add esp, 4
and ebx, 0xc22f
sub ebx, 0x17d60
pop ebx
mov edx, dword [ebp - 0x518]
mov dword [ebp - 0x774], edx
jmp 0x407794
push ecx
push eax
add esp, 4
and ecx, 0x11b41
add ecx, 0xd74
call 0x40774c
add byte [edi], dh
xor ecx, dword [ebp + 0x36]
inc esp
cmp byte [esi + 0x49], cl
add esp, 4
sub ecx, 0xb108
pop ecx
push ecx
or ecx, 0x718d
pop ecx
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 0x40778a
mov eax, dword [ebp - 0x518]
cmp dword [eax + 0x30], 0
jne 0x407555
mov dword [ebp - 0x774], 0
push edx
xor edx, 0x6b13
sub edx, 0xcd92
xor edx, 0x1327a
pop edx
push eax
push ebx
add esp, 4
or eax, 0x1377b
sub eax, 0xc0ac
and eax, 0x9e0c
or eax, 0xd68f
pop eax
cmp dword [ebp - 0x774], 0
jne 0x407810
push edi
push esi
add esp, 4
or edi, 0x8d2f
pop edi
push edi
push ebx
add esp, 4
or edi, 0x6c5c
and edi, 0xbe33
or edi, 0x4f6c
xor edi, 0x12de4
pop edi
push ebx
and ebx, 0xcca8
pop ebx
mov dword [ebp - 0xabc], 0
jmp 0x408338
push esi
push edx
add esp, 4
add esi, 0xcd7d
sub esi, 0x13f80
and esi, 0xd114
pop esi
push ecx
push esi
add esp, 4
xor ecx, 0x21b0
xor ecx, 0xe621
pop ecx
push edi
add edi, 0x1276f
pop edi
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 - 0x1670], eax
cmp dword [ebp - 0x1670], 0
jne 0x407881
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], ecx
jmp 0x407b72
mov edx, dword [ebp - 0x1670]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1678], eax
jne 0x4078a9
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], ecx
jmp 0x407b72
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1678]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x167c], edx
cmp dword [ebp - 0x167c], 0
jne 0x4078db
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], eax
jmp 0x407b72
invalid
lea ebx, [esp + edi*8 - 1]