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

Disassembly:
mov eax, dword [ebp - 0x780]
add eax, 1
mov dword [ebp - 0x780], eax
mov ecx, dword [ebp - 0x77c]
mov edx, dword [ebp - 0x780]
cmp edx, dword [ecx + 0x18]
jae 0x4085be
mov eax, dword [ebp - 0x780]
mov ecx, dword [ebp - 0x19d8]
mov edx, dword [ebp - 0x3a4]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x784], edx
mov eax, dword [ebp - 0x780]
mov ecx, dword [ebp - 0x19dc]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x19e0]
mov ecx, dword [ebp - 0x3a4]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x19e4], ecx
mov dword [ebp - 0x19c], 0
jmp 0x408422
mov edx, dword [ebp - 0x19c]
add edx, 1
mov dword [ebp - 0x19c], edx
mov eax, dword [ebp - 0x784]
add eax, dword [ebp - 0x19c]
movsx ecx, byte [eax]
test ecx, ecx
je 0x4084d4
mov edx, dword [ebp - 0x19c]
movsx eax, byte [ebp + edx - 0x8a8]
test eax, eax
je 0x4084d4
push eax
push esi
add esp, 4
xor eax, 0x1637a
jmp fcn.00408463
pop eax
push esi
or esi, 0x9b80
or esi, 0x572
jmp 0x40847a
and esi, 0x3b1
pop esi
mov ecx, dword [ebp - 0x784]
add ecx, dword [ebp - 0x19c]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x19c]
movsx ecx, byte [ebp + eax - 0x8a8]
cmp edx, ecx
je 0x4084c6
mov edx, dword [ebp - 0x784]
add edx, dword [ebp - 0x19c]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x19c]
movsx edx, byte [ebp + ecx - 0x8a8]
cmp eax, edx
jne 0x4084cd
jmp 0x408413
jmp 0x4084d4
push esi
push ecx
add esp, 4
add esi, 0x12d82
pop esi
push esi
push eax
add esp, 4
add esi, 0x6b34
pop esi
push edx
jmp 0x4084f4
or edx, 0xab8
jmp 0x4084ff
sub edx, 0x1386b
pop edx
mov eax, dword [ebp - 0x784]
add eax, dword [ebp - 0x19c]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x19c]
movsx eax, byte [ebp + edx - 0x8a8]
cmp ecx, eax
jne 0x408533
mov dword [ebp - 0xcd8], 0
jmp 0x4085a2
push ecx
push ebx
add esp, 4
call 0x408547
add byte [edx], bh
inc ebp
dec esp
cmp eax, 0x833c4a4c
les eax, [ebx + ebp*8]
push es
dec ecx
dec edi
cmp eax, 0xe84c3c37
or al, byte [eax]
add byte [eax], al
add byte [ecx + 0x49], al
inc ebp
dec ecx
cmp eax, 0x4a453632
add esp, 4
pop ecx
mov ecx, dword [ebp - 0x784]
add ecx, dword [ebp - 0x19c]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x19c]
movsx ecx, byte [ebp + eax - 0x8a8]
or ecx, 0x20
cmp edx, ecx
jge 0x408598
mov dword [ebp - 0xcd8], 0xffffffff
jmp 0x4085a2
mov dword [ebp - 0xcd8], 1
cmp dword [ebp - 0xcd8], 0
jne 0x4085b9
mov edx, dword [ebp - 0x19e4]
mov dword [ebp - 0x3fc], edx
jmp 0x4085ca
jmp 0x4083a3
mov eax, dword [ebp - 0x788]
mov dword [ebp - 0x3fc], eax
cmp dword [ebp - 0x3fc], 0
je 0x4086a5
push edi
and edi, 0x60d2
pop edi
push eax
push eax
add esp, 4
xor eax, 0x4f27
or eax, 0x11fdc
pop eax
push edi
sub edi, 0x17495
call 0x408605
add byte [edi + 0x36], cl
dec ecx
push eax
inc edx
inc edi
xor eax, 0x5f04c483
mov ecx, dword [ebp - 0x3fc]
mov dword [ebp - 0x19e8], ecx
push edi
push eax
add esp, 4
and edi, 0x16d37
pop edi
push esi
sub esi, 0xcfb1
xor esi, 0x1aaf
add esi, 0x1711d
pop esi
push ebx
push ecx
add esp, 4
xor ebx, 0xf9ae
xor ebx, 0xb5b1
pop ebx
mov edx, dword [ebp - 0x19e8]
mov dword [ebp - 0x19ec], edx
lea eax, [ebp - 0x1740]
push eax
call dword [ebp - 0x19ec]
test eax, eax
jne 0x4086a5
push eax
push esi
add esp, 4
xor eax, 0x337e
sub eax, 0x16504
add eax, 0xe33c
add eax, 0x104c3
pop eax
push edi
push edi
add esp, 4
jmp 0x40868f
jmp 0x408695
pop edi
mov dword [ebp - 0xac0], 0
jmp 0x408d90
push esi
push ebx
add esp, 4
jmp 0x4086b0
sub esi, 0x3c69
add esi, 0x13c1d
or esi, 0xc100
pop esi
push ecx
or ecx, 0x14aef
pop ecx
push eax
push eax
add esp, 4
add eax, 0x1802a
pop eax
mov ecx, dword fs:[0x18]
mov dword [ebp - 0x19f0], ecx
mov edx, dword [ebp - 0x19f0]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x19f4], eax
mov ecx, dword [ebp - 0x19f4]
mov dword [ebp - 0x1684], ecx
push eax
and eax, 0x16ac8
or eax, 0x2f1f
pop eax
push ebx
push edi
add esp, 4
or ebx, 0x7457
and ebx, 0xf6c6
pop ebx
push ebx
call 0x40872d
add byte [edi], dh
inc ebp
inc esi
inc edi
inc ecx
cmp al, 0x45
add esp, 4
pop ebx
cmp dword [ebp - 0x1684], 0
jne 0x408749
mov dword [ebp - 0x2f4], 0
jmp 0x4089f0
mov edx, dword [ebp - 0x1684]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xce4], ecx
push eax
sub eax, 0x17431
call 0x408770
add byte [edi], dh
cmp dword [ebp + edi + 0x3f], eax
dec esi
xor eax, 0x4c4833e
xor eax, 0x97a3
pop eax
push edi
push edx
add esp, 4
jmp 0x408786
add edi, 0x4cea
pop edi
cmp dword [ebp - 0xce4], 0
jne 0x4087a5
mov dword [ebp - 0x2f4], 0
jmp 0x4089f0
mov edx, dword [ebp - 0xce4]
mov dword [ebp - 0x520], edx
push esi
push edx
add esp, 4
xor esi, 0x3872
pop esi
push edi
call 0x4087cd
add byte [edi + 0x32], cl
dec edx
dec ecx
inc esi
xor bh, byte [eax]
dec ebp
dec edi
add esp, 4
and edi, 0x1158f
and edi, 0x12f20
xor edi, 0x12174
pop edi
lea eax, [ebp - 0x1740]
mov dword [ebp - 0xce0], eax
mov ecx, dword [ebp - 0x520]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xcdc], edx
xor eax, eax
mov word [ebp - 0x224], ax
xor ecx, ecx
mov word [ebp - 0x40], cx
push esi
push esi
add esp, 4
xor esi, 0x11176
pop esi
push edx
push edi
add esp, 4
xor edx, 0x1115
and edx, 0xdbce
sub edx, 0x15e59
pop edx
push eax
add eax, 0x4f9e
or eax, 0x6ba3
pop eax
mov edx, dword [ebp - 0xcdc]
mov ax, word [edx]
mov word [ebp - 0x104a], ax
mov ecx, dword [ebp - 0xcdc]
add ecx, 2
mov dword [ebp - 0xcdc], ecx
mov dx, word [ebp - 0x104a]
mov word [ebp - 0x224], dx
mov eax, dword [ebp - 0xce0]
mov cx, word [eax]
mov word [ebp - 0x104c], cx
mov edx, dword [ebp - 0xce0]
add edx, 2
mov dword [ebp - 0xce0], edx
mov ax, word [ebp - 0x104c]
mov word [ebp - 0x40], ax
push edx
call 0x4088a6
add byte [edx + 0x4e], al
dec edx
cmp byte [ebp + edi + 0x4c], cl
cmp byte [ebx], bh
add esp, 4
add edx, 0x11f37
call 0x4088be
add byte [eax + 0x4e], al
cmp eax, 0x4b423834
inc ecx
inc ebp
add esp, 4
sub edx, 0x12c43
pop edx
movzx ecx, word [ebp - 0x40]
test ecx, ecx
jne 0x4088e5
movzx edx, word [ebp - 0x224]
movzx eax, word [ebp - 0x40]
sub edx, eax
mov dword [ebp - 0x168c], edx
jmp 0x40893f
movzx ecx, word [ebp - 0x224]
movzx edx, word [ebp - 0x40]
cmp ecx, edx
je 0x40880d
movzx eax, word [ebp - 0x224]
xor eax, 0x20
movzx ecx, word [ebp - 0x40]
cmp eax, ecx
je 0x40880d
movzx edx, word [ebp - 0x224]
movzx eax, word [ebp - 0x40]
cmp edx, eax
jge 0x408929
mov dword [ebp - 0x1688], 0xffffffff
jmp 0x408933
mov dword [ebp - 0x1688], 1
mov ecx, dword [ebp - 0x1688]
mov dword [ebp - 0x168c], ecx
cmp dword [ebp - 0x168c], 0
jne 0x408988
push edx
add edx, 0x1395
add edx, 0xcf1b
or edx, 0x15eb7
pop edx
push eax
push ecx
add esp, 4
sub eax, 0x57da
sub eax, 0x13221
and eax, 0x13cc9
sub eax, 0x7472
pop eax
mov edx, dword [ebp - 0x520]
mov dword [ebp - 0x2f4], edx
jmp 0x4089f0
push edx
jmp 0x40898f
pop edx
push edx
jmp 0x408999
sub edx, 0x17d1f
or edx, 0xf373
pop edx
push ebx
sub ebx, 0x14a44
add ebx, 0x732c
xor ebx, 0x16024
pop ebx
mov eax, dword [ebp - 0x520]
mov ecx, dword [eax]
mov dword [ebp - 0x520], ecx
mov edx, dword [ebp - 0x520]
cmp edx, dword [ebp - 0xce4]
je 0x4089e6
mov eax, dword [ebp - 0x520]
cmp dword [eax + 0x30], 0
jne 0x4087b1
mov dword [ebp - 0x2f4], 0
push eax
push eax
add esp, 4
call 0x408a01
add byte [ebx], bh
dec edi
inc edi
inc ebx
dec eax
add esp, 4
call 0x408a12
add byte [eax + 0x3d], cl
dec ebp
inc edx
cmp byte [ecx], bh
dec ebx
add esp, 4
sub eax, 0x1c25
xor eax, 0xa134
pop eax
mov ecx, dword [ebp - 0x2f4]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x36c], edx
push edi
or edi, 0x15777
sub edi, 0x1275
call 0x408a4d
add byte [ebx + 0x36], cl
cmp dword [0x4e3d434f], esi
dec eax
add esp, 4
call 0x408a5f
add byte [eax + 0x3a], al
dec esi
push eax
xor eax, 0x4d383c3f
add esp, 4
pop edi
mov dword [ebp - 0x798], 0
mov eax, dword [ebp - 0x36c]
mov dword [ebp - 0x1690], eax
cmp dword [ebp - 0x1690], 0
jne 0x408a93
mov ecx, dword [ebp - 0x798]
mov dword [ebp - 0x524], ecx
jmp 0x408d84
mov edx, dword [ebp - 0x1690]
mov eax, dword [ebp - 0x36c]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1694], eax
jne 0x408abb
mov ecx, dword [ebp - 0x798]
mov dword [ebp - 0x524], ecx
jmp 0x408d84
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1694]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1698], edx
cmp dword [ebp - 0x1698], 0
jne 0x408aed
mov eax, dword [ebp - 0x798]
mov dword [ebp - 0x524], eax
jmp 0x408d84
mov ecx, dword [ebp - 0x36c]
add ecx, dword [ebp - 0x1698]
mov dword [ebp - 0x78c], ecx
jne 0x408b12
mov edx, dword [ebp - 0x798]
mov dword [ebp - 0x524], edx
jmp 0x408d84
mov eax, dword [ebp - 0x78c]
mov ecx, dword [ebp - 0x36c]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x19f8], ecx
mov edx, dword [ebp - 0x78c]
mov eax, dword [ebp - 0x36c]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x19fc], eax
mov ecx, dword [ebp - 0x78c]
mov edx, dword [ebp - 0x36c]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x1a00], edx
mov dword [ebp - 0x790], 0
jmp 0x408b6c
mov eax, dword [ebp - 0x790]
add eax, 1
mov dword [ebp - 0x790], eax
mov ecx, dword [ebp - 0x78c]
mov edx, dword [ebp - 0x790]
cmp edx, dword [ecx + 0x18]
jae 0x408d78
mov eax, dword [ebp - 0x790]
mov ecx, dword [ebp - 0x19f8]
mov edx, dword [ebp - 0x36c]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x794], edx
mov eax, dword [ebp - 0x790]
mov ecx, dword [ebp - 0x19fc]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x1a00]
mov ecx, dword [ebp - 0x36c]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x1a04], ecx
mov dword [ebp - 0x1a0], 0
jmp 0x408bdc
mov edx, dword [ebp - 0x1a0]
add edx, 1
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x794]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x408c8e
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x9d8]
test eax, eax
je 0x408c8e
push edx
push ebx
add esp, 4
and edx, 0x62ca
pop edx
push esi
call 0x408c24
add byte [edi], dh
inc ebp
dec ebp
xor eax, 0x83494e33
les eax, [ecx + eax*4]
into
les edx, [eax]
add byte [ecx + 0x1441aee], al
add bl, ch
add eax, 0x5033443c
aaa
pop esi
mov ecx, dword [ebp - 0x794]
add ecx, dword [ebp - 0x1a0]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x1a0]
movsx ecx, byte [ebp + eax - 0x9d8]
cmp edx, ecx
je 0x408c80
mov edx, dword [ebp - 0x794]
add edx, dword [ebp - 0x1a0]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x1a0]
movsx edx, byte [ebp + ecx - 0x9d8]
cmp eax, edx
jne 0x408c87
jmp 0x408bcd
jmp 0x408c8e
push edx
call 0x408c9f
add byte [esi + 0x50], cl
dec edx
dec edi
xor eax, dword [eax + 0x34]
xor al, 0x39
cmp byte [ebx + 0x525a04c4], al
or edx, 0xe9f5
pop edx
push edi
push ecx
add esp, 4
call 0x408cbc
add byte [edx + 0x37], al
aaa
cmp dword [ebx], edi
inc ecx
add esp, 4
pop edi
mov eax, dword [ebp - 0x794]
add eax, dword [ebp - 0x1a0]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x1a0]
movsx eax, byte [ebp + edx - 0x9d8]
cmp ecx, eax
jne 0x408ced
mov dword [ebp - 0xce8], 0
jmp 0x408d5c
push ebx
push eax
add esp, 4
xor ebx, 0x14e85
pop ebx
push eax
push edi
add esp, 4
and eax, 0x3797
sub eax, 0x11140
pop eax
push edi
add edi, 0x14665
xor edi, 0x13b2b
and edi, 0x10005
pop edi
mov ecx, dword [ebp - 0x794]
add ecx, dword [ebp - 0x1a0]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x1a0]
movsx ecx, byte [ebp + eax - 0x9d8]
or ecx, 0x20
cmp edx, ecx
jge 0x408d52
mov dword [ebp - 0xce8], 0xffffffff
jmp 0x408d5c
mov dword [ebp - 0xce8], 1
cmp dword [ebp - 0xce8], 0
jne 0x408d73
mov edx, dword [ebp - 0x1a04]
mov dword [ebp - 0x524], edx
jmp 0x408d84
jmp 0x408b5d
mov eax, dword [ebp - 0x798]
mov dword [ebp - 0x524], eax
mov ecx, dword [ebp - 0x524]
mov dword [ebp - 0xac0], ecx
push esi
push eax
add esp, 4
jmp 0x408d9d
sub esi, 0xf20c
or esi, 0xf8ea
pop esi
push ecx
push edx
add esp, 4
jmp 0x408db5
xor ecx, 0x11e9
jmp 0x408dc1
pop ecx
mov edx, dword [ebp - 0xac0]
mov dword [ebp - 0x1a08], edx
lea eax, [ebp - 0xcec]
push eax
push 0x40
mov ecx, dword [ebp - 0x169c]
push ecx
mov edx, dword [ebp - 0x3e4]
push edx
call dword [ebp - 0x1a08]
test eax, eax
jne 0x408e35
push ecx
or ecx, 0x17c62
sub ecx, 0x173a4
call 0x408e09
add byte [ebp + esi + 0x3c], cl
dec ecx
dec esi
dec esi
xor al, byte [ebx + 0x575904c4]
push eax
add esp, 4
jmp 0x408e1a
or edi, 0xa084
pop edi
mov eax, dword [ebp - 0x7a0]
mov dword [ebp - 0x1a0c], eax
push 0
call dword [ebp - 0x1a0c]
mov ecx, dword [ebp - 0x1a10]
mov dword [ebp - 0x79c], ecx
jmp 0x408e52
mov edx, dword [ebp - 0x79c]
add edx, 1
mov dword [ebp - 0x79c], edx
mov eax, dword [ebp - 0x79c]
cmp eax, dword [ebp - 0xac4]
jae 0x408eae
push ebx
push eax
add esp, 4
jmp 0x408e6d
pop ebx
push ebx
push edi
add esp, 4
call 0x408e82
add byte [eax + ecx*2 + 0x40], al
dec ebx
cmp edi, dword [edx]
dec edi
cmp al, 0x46
add esp, 4
or ebx, 0xac50
or ebx, 0x947f
pop ebx
movzx ecx, byte [ebp - 0x3ed]
mov edx, dword [ebp - 0x79c]
movsx eax, byte [edx]
sub eax, ecx
mov ecx, dword [ebp - 0x79c]
mov byte [ecx], al
jmp 0x408e43
mov edx, dword [ebp - 0xac0]
mov dword [ebp - 0x1a14], edx
lea eax, [ebp - 0xcec]
push eax
mov ecx, dword [ebp - 0xcec]
push ecx
mov edx, dword [ebp - 0x169c]
push edx
mov eax, dword [ebp - 0x3e4]
push eax
call dword [ebp - 0x1a14]
test eax, eax
jne 0x408f26
push edx
push ebx
add esp, 4
xor edx, 0xd450
call 0x408ef9
add byte [esi + 0x48], al
cmp eax, 0x3a47363e
xor eax, 0x5a04c483
push ecx
push esi
add esp, 4
jmp 0x408f0b
sub ecx, 0x3948
pop ecx
mov ecx, dword [ebp - 0x7a0]
mov dword [ebp - 0x1a18], ecx
push 0
call dword [ebp - 0x1a18]
push ebx
push edi
add esp, 4
sub ebx, 0x1736e
pop ebx
push eax
call 0x408f42
add byte [ebx + 0x36], cl
dec esi
xor eax, 0x4e4b4c3b
dec edx
add esp, 4
pop eax
push eax
push edi
add esp, 4
sub eax, 0x7f42
xor eax, 0x1860f
pop eax
push edx
mov ecx, 0x10101010
pop edx
push ecx
mov ecx, 0xffff07ff
pop ecx
pop eax
pop ecx
mov cl, bl
or ecx, dword [eax + 0x70dd3c8]
pop es
or al, 0x54
cmp al, byte [esi + 0x4a]
aas
pushal
pop edx
or al, 0x4c
inc edi
push eax
cmp dword [esi - 0x78], edx
ljmp 0xfef