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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0x59b2
mov word [esp + 0x7e], 0x1553
mov byte [esp + 0x7d], 0
mov si, word [esp + 0x82]
mov di, si
add di, di
mov word [esp + 0x82], di
mov byte [esp + 0x7c], 0x82
mov dword [esp + 0x78], 0x7f85
mov bl, byte [esp + 0x7c]
mov bh, bl
add bh, 0xf4
mov byte [esp + 0x76], bh
mov byte [esp + 0x43], 0x15
mov bh, byte [esp + 0x43]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x7c]
xor al, 0x7a
cmp bh, al
mov dword [esp + 0x1c], edx
mov byte [esp + 0x1b], bl
mov dword [esp + 0x14], ecx
mov word [esp + 0x12], si
je 0x4036a7
mov eax, 0xdbf3
sub eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x78]
xor ecx, 0x708b
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0x14]
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x84]
xor edi, 0x3c1
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0x28]
and edi, dword [esp + 0x84]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x84], edi
mov dword [esp + 0x30], ebx
mov edi, dword [esp + 0x50]
mov dl, byte [edi]
mov byte [esp + 0x77], dl
cmp eax, ecx
jbe 0x4034dc
mov al, byte [esp + 0x7c]
mov byte [esp + 0x81], 0xf5
mov cl, byte [esp + 0x77]
add al, 0x7e
cmp cl, al
jne 0x4033b9
mov al, byte [esp + 0x1b]
and al, al
mov byte [esp + 0x81], al
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x70], ecx
jmp 0x4036d6
jmp 0x4033bb
mov eax, dword [esp + 0x30]
cmp byte [eax], 0
je 0x4036ce
mov byte [esp + 0x37], 0x6d
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
add eax, 0x46aa
adc ecx, 0
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dl, byte [esp + 0x7c]
xor dl, 0x8d
mov eax, dword [esp + 0x30]
mov dh, byte [esp + 0x37]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x84], eax
cmp dh, dl
jb 0x4036a7
mov eax, dword [esp + 0x64]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov eax, 0xe5ed
mov cx, 0x75dc
mov dx, word [esp + 0x7e]
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x90], xmm0
mov si, word [esp + 0x7e]
sub cx, dx
mov edi, dword [esp + 0x78]
add si, 0x126c
sub eax, edi
mov word [esp + 0x34], cx
mov cx, word [esp + 0x34]
mov dword [esp + 0x2c], eax
cmp cx, si
jb 0x40339f
mov eax, 0x16c8
cmp eax, dword [esp + 0x2c]
ja 0x4036d6
mov eax, dword [esp + 0x84]
add eax, 0x5f01
mov cl, byte [esp + 0x7c]
xor cl, 0x82
mov edx, dword [esp + 0x54]
mov dword [esp + 0x84], eax
mov ch, byte [edx]
mov byte [esp + 0x6f], 0
cmp ch, cl
je 0x40351e
mov al, 0x82
mov cl, byte [esp + 0x7d]
mov dx, word [esp + 0x12]
and dx, 0x1639
mov word [esp + 0x82], dx
xor cl, 0
sub al, byte [esp + 0x7c]
mov esi, dword [esp + 0x48]
mov ah, byte [esi]
and cl, 1
mov byte [esp + 0x6f], cl
cmp ah, al
je 0x40351e
mov eax, dword [esp + 0x78]
mov ecx, 0x7f85
sub ecx, eax
mov eax, dword [esp + 0x54]
mov byte [esp + 0x81], 0x8e
mov dl, byte [esp + 0x7d]
mov esi, dword [esp + 0x48]
movsx esi, byte [esi]
movsx eax, byte [eax]
inc dl
mov dh, byte [esp + 0x1b]
mov byte [esp + 0x81], dh
sub eax, esi
cmp eax, ecx
setne bl
xor bl, dl
and bl, 1
mov byte [esp + 0x6f], bl
test byte [esp + 0x6f], 1
jne 0x40352a
jmp 0x40360c
movzx eax, word [esp + 0x7e]
add eax, 0x48d3
mov cx, ax
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
add eax, 0xffffdd9a
adc edx, 0xffffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov bl, byte [esp + 0x1b]
or bl, bl
mov byte [esp + 0x81], bl
mov word [esp + 0x26], cx
mov cx, word [esp + 0x7e]
add cx, 0x4e79
cmp word [esp + 0x26], cx
jae 0x403483
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
xor eax, 0x3357
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x68], edx
sub eax, esi
setb bl
sub edi, ecx
seta bh
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
mov byte [esp + 7], bh
mov byte [esp + 6], bl
je 0x4035c3
mov al, byte [esp + 7]
mov byte [esp + 6], al
mov al, byte [esp + 6]
test al, al
jne 0x4036b1
jmp 0x4035d1
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x68]
not eax
not ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
add edx, 1
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x48]
add eax, 1
mov dword [esp + 0x48], eax
jmp 0x40342a
mov al, 0x2a
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov esi, ecx
imul esi, edx
mov byte [esp + 5], al
mov eax, ecx
mul ecx
add edx, esi
add edx, esi
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], eax
mov byte [esp + 0x5f], 0xee
mov bl, byte [esp + 0x7c]
mov bh, byte [esp + 0x5f]
mov al, byte [esp + 5]
sub al, bl
mov byte [esp + 0x4f], bh
cmp al, byte [esp + 0x76]
jbe 0x4033c8
mov al, 0xa1
cmp al, byte [esp + 0x4f]
ja 0x40339f
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
add eax, eax
adc ecx, ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dl, byte [esp + 0x7c]
add dl, 0x7e
mov eax, dword [esp + 0x58]
mov byte [esp + 0x81], 0x92
cmp byte [eax], dl
jne 0x4036b1
mov eax, dword [esp + 0x30]
mov dword [esp + 0x70], eax
jmp 0x4036d6
mov eax, dword [esp + 0x30]
add eax, 1
mov dword [esp + 0x30], eax
mov cl, byte [esp + 0x1b]
sub cl, cl
mov byte [esp + 0x81], cl
jmp 0x4033bb
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x70]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8