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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dl, byte [esp + 0x87]
mov dh, dl
and dh, 0xc2
mov byte [esp + 0x87], dh
mov word [esp + 0x8a], 0xf475
mov byte [esp + 0x73], 0xdb
mov word [esp + 0x88], 0xdbdf
mov dword [esp + 0x6c], 0x73bd10ea
mov dh, byte [esp + 0x73]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
add dh, 0xa1
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x78], 0xdfbdcdb3
mov byte [esp + 0x63], dh
mov bx, word [esp + 0x88]
mov dword [esp + 0x34], esi
mov si, bx
imul si, si
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
mov word [esp + 0x88], si
cmp eax, 0
mov word [esp + 0x2e], bx
mov dword [esp + 0x28], ecx
mov byte [esp + 0x27], dl
mov dword [esp + 0x20], edi
je 0x4089eb
jmp 0x408b17
mov eax, dword [esp + 0x38]
inc eax
movzx ecx, word [esp + 0x8a]
mov edx, 0xfffffeb4
sub edx, ecx
mov si, dx
mov dword [esp + 0x38], eax
mov word [esp + 0x56], si
mov si, word [esp + 0x56]
mov dword [esp + 0x78], 0x4b478049
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0x50]
mov di, word [esp + 0x2e]
mov dx, di
mov ebx, 0x14a3
sub ebx, edx
mov di, bx
xor ecx, 0xf19a
mov word [esp + 0x88], di
add eax, 0x28
mov dword [esp + 0x74], 0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
imul eax, edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, ebx
mul ebx
mov edi, dword [esp + 0x1c]
add edx, edi
add edx, edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp cx, si
jae 0x408992
mov al, byte [esp + 0x27]
xor al, 0xff
mov byte [esp + 0x87], al
mov ecx, dword [esp + 0x68]
mov al, byte [esp + 0x27]
add al, 0xed
mov byte [esp + 0x87], al
mov dword [esp + 0x50], ecx
jmp 0x4089fc
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
cmp dword [esp + 0x40], 0
jne 0x408aa6
jmp 0x408a68
jmp 0x408978
mov eax, dword [esp + 0x6c]
add eax, 0x8c42ef16
mov ecx, dword [ebp + 0xc]
mov dword [esp], ecx
mov dword [esp + 0x18], eax
call fcn.00408f30
xor ecx, ecx
add ecx, 0x18
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
mov dl, byte [esp + 0x27]
xor dl, 0xff
mov byte [esp + 0x87], dl
mov esi, dword [esp + 0x74]
add esi, dword [esp + 0x74]
add eax, ecx
mov dword [esp + 0x74], esi
mov ecx, dword [esp + 0x64]
movzx ecx, word [ecx + 0x14]
add eax, ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
jmp 0x4089fc
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x74]
mov dword [esp + 0x74], eax
jmp 0x408978
mov al, byte [esp + 0x27]
or al, 0xf0
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x87], al
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x7c], edi
not edi
not esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
mov bx, word [edx + 6]
mov al, byte [esp + 0x27]
xor al, 0xa4
mov byte [esp + 0x87], al
movzx edx, bx
mov dword [esp + 0x74], 0x5a12871d
mov bx, word [esp + 0x2e]
imul ax, bx, 0xd6cc
mov word [esp + 0x88], ax
cmp ecx, edx
jb 0x408980
jmp 0x408978
jmp 0x408978
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], esi
call fcn.00401060
mov dword [esp + 0x74], 0xff6b2c96
jmp 0x4088bd
mov eax, dword [esp + 0x64]
mov cx, word [esp + 0x2e]
and cx, 0x63b5
mov word [esp + 0x88], cx
mov eax, dword [eax + 0x54]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
add eax, 0x4d34d998
mov dl, byte [esp + 0x73]
mov dh, byte [esp + 0x63]
add dl, 0x83
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], eax
mov byte [esp + 0x87], 0xfb
mov eax, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x74], 0xb8a6a03e
cmp dh, dl
je 0x4089eb
jmp 0x408a6d
mov eax, dword [ebp + 8]
mov dword [esp + 0x40], eax
cmp dword [ebp + 0xc], 0
je 0x408990
jmp 0x408992