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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0x1eae
mov byte [esp + 0xb5], 0xb8
mov dword [esp + 0xb0], 0x1147
mov dword [esp + 0x98], 0x11e1
mov dl, byte [esp + 0xb5]
mov dh, dl
add dh, 0x6d
mov byte [esp + 0xc7], dh
mov dh, 0x1e
sub dh, dl
mov byte [esp + 0x59], dh
mov dh, byte [esp + 0xb5]
mov bl, 0xc7
sub bl, dh
mov byte [esp + 0x9f], bl
mov dword [esp + 0xa4], eax
mov dword [esp + 0x84], ecx
mov byte [esp + 0x37], dl
call fcn.004036c0
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
mov edi, ecx
not edi
mov ebx, esi
not ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xb8], edi
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax + 0xc]
add eax, 0x14
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xac]
mov byte [esp + 0xc7], 0xeb
mov eax, dword [eax]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ecx
jmp 0x4034fb
mov dword [esp + 0x64], 0
jmp 0x403354
mov eax, dword [esp + 0xb0]
add eax, 0xffffeeb9
cmp dword [esp + 0x44], eax
je 0x4036b0
jmp 0x4036b2
mov eax, 0x1148
sub eax, dword [esp + 0xb0]
add eax, dword [esp + 0xa0]
mov dword [esp + 0xa0], eax
jmp 0x40355d
mov eax, dword [esp + 0x8c]
mov eax, dword [eax]
mov dword [esp + 0x8c], eax
jmp 0x4034fb
mov eax, dword [esp + 0xb0]
add eax, 0xffffeeb9
mov dword [esp + 0x44], 0
mov dword [esp + 0xa0], eax
jmp 0x40355d
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
xor edx, edx
mov esi, 0x8e18
sub esi, eax
mov edi, edx
sbb edi, ecx
mov ebx, 0x3880
sub ebx, eax
sbb edx, ecx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
add eax, 0xc2b
adc ecx, 0
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], ebx
xor edi, ecx
xor esi, eax
or esi, edi
mov dword [esp + 0x28], esi
je 0x40355d
jmp 0x403514
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov eax, 0x8899
mov ecx, dword [esp + 0x98]
sub eax, dword [esp + 0xb0]
cmp ecx, eax
je 0x4034dd
jmp 0x403692
xor eax, eax
mov ecx, 0x544b
mov edx, dword [esp + 0x2c]
sub ecx, edx
mov esi, eax
mov edi, dword [esp + 0x30]
sbb esi, edi
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], esi
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
xor esi, 0x24b3
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x20], eax
mov eax, edi
xor eax, esi
lea ecx, [ecx + ebx*2]
mov esi, 0x6cef
sub esi, edi
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
sbb edi, ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x38], xmm0
xor edx, ebx
xor eax, 0x441f
or eax, edx
mov dword [esp + 0x1c], eax
jne 0x403624
jmp 0x403354
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x64], eax
jmp 0x403354
xor eax, eax
mov ecx, 0x3908
mov edx, dword [esp + 0x2c]
sub ecx, edx
mov esi, dword [esp + 0x30]
sbb eax, esi
mov bl, byte [esp + 0x59]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
mov di, word [esp + 0xaa]
mov bh, byte [esp + 0xb5]
add bh, 0xac
mov word [esp + 0x5a], di
cmp bh, bl
jae 0x403271
jmp 0x4034ac
mov eax, dword [esp + 0x5c]
mov cx, word [eax]
mov word [esp + 0xaa], cx
movzx eax, word [esp + 0xaa]
mov dl, 0x98
mov dh, byte [esp + 0x37]
mov dword [esp + 0x18], eax
mov al, dh
mul dl
mov byte [esp + 0xc7], al
mov esi, dword [esp + 0x18]
cmp esi, 0x41
jge 0x40342c
jmp 0x40364a
mov ax, word [esp + 0x5a]
mov ecx, dword [esp + 0xb0]
add ecx, 0xffffef13
movzx edx, ax
cmp edx, ecx
jle 0x4034dd
jmp 0x40364a
cmp dword [esp + 0xa4], 0
jne 0x40334c
jmp 0x4032cd
movzx eax, word [esp + 0xaa]
add eax, 0x61
sub eax, 0x41
mov cx, ax
mov word [esp + 0xaa], cx
jmp 0x40364a
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0xac]
jne 0x4035ac
jmp 0x403271
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
add eax, 0xffffefec
adc ecx, 0xffffffff
xor eax, edx
xor ecx, esi
or eax, ecx
mov dword [esp + 0x14], eax
je 0x403354
jmp 0x40327e
mov eax, dword [esp + 0x88]
cmp dword [esp + 0x60], eax
jb 0x403374
jmp 0x4036a0
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x60], eax
mov cl, byte [esp + 0x9f]
mov dl, byte [esp + 0xb5]
xor dl, 0x76
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0xb0]
xor esi, 0x1145
xor edi, edi
mov byte [esp + 0x13], dl
mov edx, edi
div esi
mov dword [esp + 0x88], eax
mov ch, byte [esp + 0x13]
cmp ch, cl
jb 0x403354
jmp 0x403547
xor eax, eax
mov ecx, eax
add ecx, 8
sub eax, ecx
mov dl, 0x41
mov dh, byte [esp + 0x37]
mov dword [esp + 0xc], eax
mov al, dh
mul dl
mov ecx, dword [esp + 0x8c]
mov byte [esp + 0xc7], al
mov esi, dword [esp + 0xc]
add ecx, esi
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x48]
movzx ecx, word [ecx + 0x2c]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + 0x18]
mov di, word [esp + 0xb6]
mov ebx, dword [esp + 0xa4]
xor di, 0xffff
mov word [esp + 0xb6], di
cmp ecx, ebx
je 0x4034ca
jmp 0x4032cd
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov esi, 0xc4d
sub esi, eax
sbb edx, ecx
mov dword [esp + 8], esi
mov dword [esp + 4], edx
jb 0x403472
jmp 0x4034fb
movzx eax, word [esp + 0xaa]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0xa0]
movzx ecx, word [ecx + edx*2]
cmp ecx, eax
sete bl
and bl, 1
movzx eax, bl
mov dword [esp + 0x44], eax
mov bl, byte [esp + 0x37]
xor bl, bl
mov byte [esp + 0xc7], bl
movzx eax, word [esp + 0xaa]
cmp eax, 0
je 0x4036b0
jmp 0x4032ed
mov eax, dword [esp + 0x64]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
cmp dword [esp + 0x44], 0
jne 0x40341c
jmp 0x4032b8
jmp 0x4036a0
jmp 0x403299