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

Disassembly:
add esp, 4
and esi, 0x85e3
pop esi
push ecx
push ecx
add esp, 4
xor ecx, 0xbc8a
sub ecx, 0x27cd
pop ecx
cmp dword [ebp - 0x1620], 0
jne 0x407499
mov dword [ebp - 0x774], 0
jmp 0x407740
mov edx, dword [ebp - 0x1620]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xcd0], ecx
push edx
and edx, 0x15470
sub edx, 0x25b0
pop edx
push edi
add edi, 0xdec4
pop edi
push edi
jmp 0x4074ca
or edi, 0xf497
jmp 0x4074d6
or edi, 0x143f9
pop edi
cmp dword [ebp - 0xcd0], 0
jne 0x4074f5
mov dword [ebp - 0x774], 0
jmp 0x407740
mov edx, dword [ebp - 0xcd0]
mov dword [ebp - 0x518], edx
push esi
and esi, 0xdf3a
call 0x407516
add byte [esi], bh
inc esp
aaa
cmp eax, 0x3b4b494a
add esp, 4
and esi, 0x2786
pop esi
push ecx
add ecx, 0x8e64
jmp 0x40752c
or ecx, 0x10ee0
pop ecx
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 ecx
push eax
add esp, 4
or ecx, 0x524e
or ecx, 0x5a3e
and ecx, 0x15c15
pop ecx
push eax
and eax, 0x161db
and eax, 0xf37
and eax, 0x5a56
sub eax, 0x49bd
pop eax
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 esi
add esi, 0x11e60
sub esi, 0x74b3
and esi, 0x24b0
pop esi
push ecx
push ebx
add esp, 4
call 0x40760e
add byte [esi], dh
cmp cl, byte [edx + 0x39]
xor al, 0x3b
xor al, 0x4f
dec ecx
add esp, 4
and ecx, 0x1533c
pop ecx
movzx ecx, word [ebp - 0x3c]
test ecx, ecx
jne 0x407635
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
sub edx, eax
mov dword [ebp - 0x1668], edx
jmp 0x40768f
movzx ecx, word [ebp - 0x220]
movzx edx, word [ebp - 0x3c]
cmp ecx, edx
je 0x40755d
movzx eax, word [ebp - 0x220]
xor eax, 0x20
movzx ecx, word [ebp - 0x3c]
cmp eax, ecx
je 0x40755d
movzx edx, word [ebp - 0x220]
movzx eax, word [ebp - 0x3c]
cmp edx, eax
jge 0x407679
mov dword [ebp - 0x1624], 0xffffffff
jmp 0x407683
mov dword [ebp - 0x1624], 1
mov ecx, dword [ebp - 0x1624]
mov dword [ebp - 0x1668], ecx
cmp dword [ebp - 0x1668], 0
jne 0x4076d8
push eax
push ecx
add esp, 4
add eax, 0xa9a7
jmp 0x4076a9
add eax, 0x98d6
jmp 0x4076b5
pop eax
push edx
push esi
add esp, 4
and edx, 0x7088
pop edx
push ebx
sub ebx, 0xbd72
pop ebx
mov edx, dword [ebp - 0x518]
mov dword [ebp - 0x774], edx
jmp 0x407740
push edi
sub edi, 0x120ba
pop edi
push eax
or eax, 0x3101
add eax, 0x12988
pop eax
push edx
push ebx
add esp, 4
call 0x407700
add byte [0x474d4f4f], bh
aas
inc edi
add esp, 4
sub edx, 0x9c48
pop edx
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 0x407736
mov eax, dword [ebp - 0x518]
cmp dword [eax + 0x30], 0
jne 0x407501
mov dword [ebp - 0x774], 0
push eax
push eax
add esp, 4
and eax, 0xf30d
pop eax
push edi
sub edi, 0xe07c
pop edi
push edi
sub edi, 0xd17b
add edi, 0x104d2
pop edi
push ecx
jmp 0x40776b
and ecx, 0x6fca
pop ecx
cmp dword [ebp - 0x774], 0
jne 0x4077bc
push ebx
push ebx
add esp, 4
or ebx, 0xa8af
add ebx, 0x7a25
call 0x407799
add byte [edx], bh
dec ebp
dec ebp
xor eax, dword [eax + 0x3a]
add esp, 4
call 0x4077a9
add byte [edx + esi + 0x36], al
inc eax
cmp al, byte [eax + 0x33]
add esp, 4
pop ebx
mov dword [ebp - 0xab4], 0
jmp 0x4082e4
push eax
or eax, 0x6312
pop eax
push ecx
push eax
add esp, 4
and ecx, 0xe5a1
pop ecx
push edx
push ecx
add esp, 4
sub edx, 0xe024
or edx, 0xca0a
and edx, 0xaac9
sub edx, 0x30df
pop edx
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 0x40782d
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], ecx
jmp 0x407b1e
mov edx, dword [ebp - 0x166c]
mov eax, dword [ebp - 0x3a4]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1670], eax
jne 0x407855
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], ecx
jmp 0x407b1e
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 0x407887
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], eax
jmp 0x407b1e
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [ebp - 0x1678]
mov dword [ebp - 0x778], ecx
jne 0x4078ac
mov edx, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], edx
jmp 0x407b1e
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 0x407906
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 0x407b12
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 0x407976
mov edx, dword [ebp - 0x1a0]
add edx, 1
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x780]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x407a28
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x8a4]
test eax, eax
je 0x407a28
push ebx
push edi
add esp, 4
or ebx, 0x621
or ebx, 0x8132
jmp 0x4079bc
pop ebx
push ebx
push esi
add esp, 4
sub ebx, 0x7e33
or ebx, 0x16d8c
xor ebx, 0x41bb
pop ebx
mov ecx, dword [ebp - 0x780]
add ecx, dword [ebp - 0x1a0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1a0]
movsx ecx, byte [ebp + eax - 0x8a4]
cmp edx, ecx
je 0x407a1a
mov edx, dword [ebp - 0x780]
add edx, dword [ebp - 0x1a0]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x1a0]
movsx edx, byte [ebp + ecx - 0x8a4]
cmp eax, edx
jne 0x407a21
jmp 0x407967
jmp 0x407a28
push ecx
add ecx, 0xbbe
and ecx, 0x16058
xor ecx, 0x5100
pop ecx
push eax
push ebx
add esp, 4
jmp 0x407a4a
pop eax
push ebx
sub ebx, 0x151f0
jmp 0x407a59
pop ebx
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 0x407a87
mov dword [ebp - 0xcd4], 0
jmp 0x407af6
push edi
xor edi, 0xe72c
xor edi, 0x3b69
jmp 0x407a9a
pop edi
push ebx
push edi
add esp, 4
and ebx, 0x11046
sub ebx, 0xe49a
sub ebx, 0x46b7
add ebx, 0x7cf8
pop ebx
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 0x407aec
mov dword [ebp - 0xcd4], 0xffffffff
jmp 0x407af6
mov dword [ebp - 0xcd4], 1
cmp dword [ebp - 0xcd4], 0
jne 0x407b0d
mov edx, dword [ebp - 0x19b0]
mov dword [ebp - 0x3f8], edx
jmp 0x407b1e
jmp 0x4078f7
mov eax, dword [ebp - 0x784]
mov dword [ebp - 0x3f8], eax
cmp dword [ebp - 0x3f8], 0
je 0x407bf9
push ecx
push ebx
add esp, 4
xor ecx, 0x7094
pop ecx
push edx
push esi
add esp, 4
or edx, 0x3e00
xor edx, 0x18670
pop edx
push edx
sub edx, 0x6618
and edx, 0x125fa
and edx, 0xe916
pop edx
mov ecx, dword [ebp - 0x3f8]
mov dword [ebp - 0x19b4], ecx
push esi
and esi, 0x5491
call 0x407b7c
add byte [ebx], dh
dec edx
dec edx
inc edx
xor esi, dword [0x8104c483]
into
xor dword [0xe6810000], edx
sbb dh, ch
add byte [eax], al
pop esi
push esi
jmp 0x407b94
sub esi, 0x1227a
pop esi
mov edx, dword [ebp - 0x19b4]
mov dword [ebp - 0x19b8], edx
lea eax, [ebp - 0x1738]
push eax
call dword [ebp - 0x19b8]
test eax, eax
jne 0x407bf9
push edi
push eax
add esp, 4
call 0x407bcd
add byte [ecx + edi + 0x34], al
inc eax
cmp cl, byte [ecx + 0x46]
dec esp
cmp esi, dword [edx]
add esp, 4
call 0x407be0
add byte [ebx], bh
cmp eax, dword [edi + 0x43]
inc edx
xor al, byte [ebx + 0x43]
dec ecx
xor al, byte [ebx - 0x87efb3c]
mov ebp, 0x5f000094
mov dword [ebp - 0xab4], 0
jmp 0x4082e4