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

Disassembly:
jmp 0x439050
sub esp, 0x2c
mov eax, dword [esp + 0x30]
push ebx
push ebp
mov ebp, dword [esp + 0x44]
and ebp, 0xff00
mov ebx, ecx
xor edx, edx
push esi
cmp ebp, 0x400
push edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], eax
jg 0x4396cc
je 0x4390a7
cmp ebp, 0x100
je 0x4396f0
cmp ebp, 0x200
je 0x4396f0
cmp ebp, 0x300
jne 0x439b7e
mov ecx, dword [esp + 0x48]
add eax, 0x800
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
cmp ebp, 0x400
mov esi, eax
mov dword [esp + 0x14], ecx
jne 0x439139
cmp byte [esp + 0x50], 0
je 0x439139
cmp eax, edx
mov dword [ebx + 4], edx
je 0x4390e5
mov ecx, eax
mov edx, dword [ebx + 4]
imul ecx, eax
add edx, ecx
sar eax, 1
mov dword [ebx + 4], edx
jne 0x4390d4
mov edx, dword [ebx + 4]
shl edx, 2
push edx
call fcn.005f72ef
mov dword [ebx], eax
mov edi, eax
mov eax, dword [esp + 0x48]
mov esi, 1
add esp, 4
cmp eax, esi
mov dword [esp + 0x14], esi
jl 0x439b7e
mov eax, dword [esp + 0x14]
cdq
sub eax, edx
sar eax, 1
cmp eax, 1
mov ecx, eax
jg 0x439122
mov ecx, 1
mov eax, esi
mov dword [esp + 0x2c], ecx
cdq
sub eax, edx
sar eax, 1
cmp eax, 1
jg 0x43918b
mov eax, 1
jmp 0x439193
mov eax, dword [esp + 0x44]
imul eax, ecx
shl eax, 2
push eax
mov dword [ebx + 4], eax
call fcn.005f72ef
add esp, 4
cmp ebp, 0x400
mov dword [ebx], eax
mov edi, eax
jne 0x43910d
mov ecx, dword [esp + 0x44]
sar ecx, 1
je 0x43910d
mov ebp, dword [esp + 0x18]
mov eax, ecx
imul eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp eax, 1
jg 0x43917f
mov eax, 1
add ebp, eax
sar ecx, 1
jne 0x439167
mov dword [esp + 0x18], ebp
jmp 0x43910d
test eax, eax
jle 0x439698
mov dword [esp + 0x30], eax
test ecx, ecx
jle 0x439689
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
and eax, 0xff
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x50]
push edx
mov cl, byte [eax]
inc eax
mov byte [esp + 0x3c], cl
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, ecx
inc ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.00401587
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
add esp, 0xc
lea ebp, [edx + edx]
mov edx, dword [esp + 0x38]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x40]
and edx, 0xff
mov dword [esp + 0x50], ecx
mov dword [esp + 0x10], ebp
mov bx, word [eax + edx*8 + 4]
lea ecx, [eax + edx*8]
mov ax, word [eax + edx*8 + 6]
mov dx, word [ecx + 2]
mov cx, word [ecx]
mov word [esp + 0x48], dx
mov word [esp + 0x20], cx
mov ecx, dword [esp + 0x1c]
cmp ecx, 5
ja case.0x43922e.3
mov edx, ecx
jmp dword [edx*4 + 0x439b8c]
mov edx, eax
mov cl, al
shr edx, 5
and cl, 0x1f
and dl, 0x3f
shr eax, 0xb
shl cl, 3
and al, 0x1f
push 0xff
shl dl, 2
push ecx
push edx
shl al, 3
push eax
mov eax, dword [esp + 0x60]
inc eax
push esi
inc ebp
push eax
push ebp
push edi
call fcn.0040343b
mov edx, ebx
mov cl, bl
mov eax, dword [esp + 0x70]
and cl, 0x1f
shr edx, 5
shr ebx, 0xb
and dl, 0x3f
and bl, 0x1f
shl cl, 3
push 0xff
push ecx
mov ecx, dword [esp + 0x38]
shl dl, 2
shl bl, 3
push edx
push ebx
push esi
inc ecx
push eax
push ecx
push edi
call fcn.0040343b
mov eax, dword [esp + 0x88]
add esp, 0x40
mov dl, al
mov ecx, eax
and dl, 0x1f
push 0xff
shr ecx, 5
shr eax, 0xb
shl dl, 3
and cl, 0x3f
and al, 0x1f
push edx
mov edx, dword [esp + 0x58]
shl cl, 2
shl al, 3
push ecx
push eax
mov eax, dword [esp + 0x20]
inc edx
push esi
push edx
push eax
push edi
call fcn.0040343b
mov eax, dword [esp + 0x40]
push 0xff
mov edx, eax
mov cl, al
shr edx, 5
and cl, 0x1f
and dl, 0x3f
shl cl, 3
shl dl, 2
shr eax, 0xb
push ecx
push edx
and al, 0x1f
shl al, 3
push eax
jmp 0x43965b
mov edx, eax
mov cl, al
shr edx, 0xc
and dl, 0xf
and cl, 0xf
shl dl, 4
push edx
mov dl, al
shl cl, 4
push ecx
xor ecx, ecx
shr dl, 4
and dl, 0xf
mov cl, ah
shl dl, 4
and cl, 0xf
push edx
mov edx, dword [esp + 0x5c]
shl cl, 4
push ecx
inc edx
push esi
inc ebp
push edx
push ebp
push edi
call fcn.0040343b
mov eax, ebx
mov dl, bl
shr eax, 0xc
and al, 0xf
mov cl, bl
shl al, 4
push eax
xor eax, eax
shr dl, 4
and cl, 0xf
and dl, 0xf
mov al, bh
shl cl, 4
shl dl, 4
and al, 0xf
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x3c]
shl al, 4
push eax
push esi
inc edx
push ecx
push edx
push edi
call fcn.0040343b
mov eax, dword [esp + 0x88]
add esp, 0x40
mov ecx, eax
mov dl, al
shr ecx, 0xc
and cl, 0xf
and dl, 0xf
shl cl, 4
shl dl, 4
push ecx
push edx
mov cl, al
xor edx, edx
shr cl, 4
mov dl, ah
mov eax, dword [esp + 0x58]
and cl, 0xf
and dl, 0xf
shl cl, 4
shl dl, 4
push ecx
mov ecx, dword [esp + 0x1c]
push edx
inc eax
push esi
push eax
push ecx
push edi
call fcn.0040343b
mov eax, dword [esp + 0x40]
mov edx, eax
mov cl, al
shr edx, 0xc
and dl, 0xf
and cl, 0xf
shl dl, 4
shl cl, 4
push edx
push ecx
mov dl, al
xor ecx, ecx
shr dl, 4
mov cl, ah
mov eax, dword [esp + 0x38]
and dl, 0xf
and cl, 0xf
shl dl, 4
shl cl, 4
push edx
mov edx, dword [esp + 0x7c]
push ecx
push esi
push edx
push eax
jmp 0x439669
mov ecx, eax
mov dl, al
and ecx, 0x8000
neg ecx
sbb cl, cl
and dl, 0x1f
and ecx, 0xff
push ecx
mov ecx, eax
shr ecx, 5
shr eax, 0xa
shl dl, 3
and cl, 0x1f
and al, 0x1f
push edx
mov edx, dword [esp + 0x58]
shl cl, 3
shl al, 3
push ecx
push eax
inc edx
push esi
inc ebp
push edx
push ebp
push edi
call fcn.0040343b
mov eax, ebx
mov edx, ebx
and eax, 0x8000
mov cl, bl
neg eax
sbb al, al
and cl, 0x1f
shr edx, 5
shr ebx, 0xa
and eax, 0xff
and dl, 0x1f
shl cl, 3
and bl, 0x1f
push eax
mov eax, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x38]
shl dl, 3
shl bl, 3
push edx
push ebx
push esi
inc ecx
push eax
push ecx
push edi
call fcn.0040343b
mov eax, dword [esp + 0x88]
add esp, 0x40
mov edx, eax
mov cl, al
and edx, 0x8000
neg edx
sbb dl, dl
and cl, 0x1f
and edx, 0xff
push edx
mov edx, eax
shr edx, 5
shr eax, 0xa
and dl, 0x1f
and al, 0x1f
shl cl, 3
shl dl, 3
push ecx
mov ecx, dword [esp + 0x18]
shl al, 3
push edx
push eax
mov eax, dword [esp + 0x60]
push esi
inc eax
push eax
push ecx
push edi
call fcn.0040343b
mov eax, dword [esp + 0x40]
mov edx, eax
mov cl, al
and edx, 0x8000
neg edx
sbb dl, dl
and cl, 0x1f
and edx, 0xff
push edx
mov edx, eax
shr edx, 5
shr eax, 0xa
and dl, 0x1f
and al, 0x1f
shl cl, 3
shl dl, 3
push ecx
push edx
shl al, 3
push eax
jmp 0x43965b
mov dl, al
mov ecx, eax
and dl, 0x1f
push 0xff
shr ecx, 5
shr eax, 0xa
shl dl, 3
and cl, 0x1f
and al, 0x1f
push edx
mov edx, dword [esp + 0x58]
shl cl, 3
shl al, 3
push ecx
push eax
inc edx
push esi
inc ebp
push edx
push ebp
push edi
call fcn.0040343b
mov ecx, ebx
mov al, bl
mov edx, dword [esp + 0x70]
and al, 0x1f
shr ecx, 5
shr ebx, 0xa
and cl, 0x1f
and bl, 0x1f
shl al, 3
push 0xff
push eax
mov eax, dword [esp + 0x38]
shl cl, 3
shl bl, 3
push ecx
push ebx
push esi
inc eax
push edx
push eax
push edi
call fcn.0040343b
mov eax, dword [esp + 0x88]
add esp, 0x40
mov edx, eax
mov cl, al
shr edx, 5
and cl, 0x1f
and dl, 0x1f
shr eax, 0xa
shl cl, 3
and al, 0x1f
push 0xff
shl dl, 3
push ecx
mov ecx, dword [esp + 0x18]
shl al, 3
push edx
push eax
mov eax, dword [esp + 0x60]
push esi
inc eax
push eax
push ecx
push edi
call fcn.0040343b
mov eax, dword [esp + 0x40]
push 0xff
mov ecx, eax
mov dl, al
shr ecx, 5
and dl, 0x1f
and cl, 0x1f
shl dl, 3
shl cl, 3
shr eax, 0xa
push edx
push ecx
and al, 0x1f
mov edx, dword [esp + 0x7c]
shl al, 3
push eax
mov eax, dword [esp + 0x40]
push esi
push edx
push eax
jmp 0x439669
mov ecx, dword [esp + 0x50]
push 0xf0
push 0
push 0xf0
push 0
inc ecx
push esi
inc ebp
push ecx
push ebp
push edi
call fcn.0040343b
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x70]
push 0xf0
push 0
push 0xf0
push 0
push esi
inc eax
push edx
push eax
push edi
call fcn.0040343b
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x50]
add esp, 0x40
inc ecx
push 0xf0
push 0
push 0xf0
push 0
push esi
push ecx
push edx
push edi
call fcn.0040343b
push 0xf0
push 0
push 0xf0
push 0
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x40]
push esi
push eax
push ecx
push edi
call fcn.0040343b
mov eax, dword [esp + 0x68]
add esp, 0x40
dec eax
mov dword [esp + 0x28], eax
jne 0x4391b0
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x30], eax
jne 0x439197
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], 0
mov edx, eax
imul edx, esi
shl eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
shl esi, 1
cmp esi, eax
lea edi, [edi + edx*4]
jle 0x43910d
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x2c
ret 0x14
cmp ebp, 0x900
je 0x4399fe
cmp ebp, 0xa00
je 0x4399fe
cmp ebp, 0xd00
jne 0x439b7e
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
cmp ebp, 0x200
mov esi, edi
mov dword [esp + 0x14], ecx
jne 0x439744
mov al, byte [esp + 0x50]
test al, al
je 0x439744
cmp edi, edx
mov dword [ebx + 4], edx
mov eax, edi
je 0x439728
mov ecx, eax
mov edx, dword [ebx + 4]
imul ecx, eax
add edx, ecx
sar eax, 1
mov dword [ebx + 4], edx
jne 0x439717
mov edx, dword [ebx + 4]
shl edx, 2
push edx
call fcn.005f72ef
mov esi, 1
add esp, 4
mov dword [ebx], eax
mov dword [esp + 0x14], esi
jmp 0x43977f
mov eax, edi
imul eax, ecx
shl eax, 2
push eax
mov dword [ebx + 4], eax
call fcn.005f72ef
add esp, 4
cmp ebp, 0x200
mov dword [ebx], eax
jne 0x43977f
mov ecx, dword [esp + 0x18]
mov eax, edi
sar eax, 1
je 0x439778
mov edx, eax
imul edx, eax
sar eax, 1
lea ecx, [ecx + edx*2]
jne 0x43976c
add ecx, 2
mov dword [esp + 0x18], ecx
mov ebp, dword [ebx]
cmp esi, edi
jg 0x439b7e
mov eax, dword [esp + 0x14]
xor ebx, ebx
test eax, eax
jle 0x4399b7
mov dword [esp + 0x24], 0x682950
xor edi, edi
test esi, esi
jle 0x43999f
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x40], 0x682950
and eax, 0xff
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jle 0x4397f9
mov eax, edi
mov ecx, dword [esp + 0x24]
cdq
idiv dword [esp + 0x14]
mov eax, dword [ecx]
shr eax, 1
mov ecx, dword [edx*4 + 0x682950]
or ecx, eax
mov eax, edi
cdq
idiv dword [esp + 0x14]
mov edx, eax
mov eax, dword [esp + 0x14]
imul edx, eax
imul edx, eax
add ecx, edx
jmp 0x43981c
mov eax, ebx
cdq
idiv esi
mov ecx, dword [edx*4 + 0x682950]
mov edx, dword [esp + 0x40]
shr ecx, 1
mov eax, dword [edx]
or ecx, eax
mov eax, ebx
cdq
idiv esi
imul eax, esi
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x18]
mov ax, word [eax + ecx*2]
mov ecx, dword [esp + 0x1c]
cmp ecx, 5
ja case.0x439831.4
jmp dword [ecx*4 + 0x439ba4]
mov edx, eax
mov cl, al
shr edx, 5
and cl, 0x1f
and dl, 0x3f
shr eax, 0xb
shl cl, 3
and al, 0x1f
push 0xff
shl dl, 2
push ecx
push edx
shl al, 3
push eax
jmp 0x43997f
mov ecx, eax
mov dl, al
shr ecx, 0xc
and cl, 0xf
and dl, 0xf
shl cl, 4
shl dl, 4
push ecx
push edx
mov cl, al
xor edx, edx
shr cl, 4
mov dl, ah
and cl, 0xf
and dl, 0xf
shl cl, 4
shl dl, 4
push ecx
push edx
jmp 0x43997f
mov ecx, eax
mov dl, al
and ecx, 0x8000
neg ecx
sbb cl, cl
and dl, 0x1f
and ecx, 0xff
push ecx
mov ecx, eax
shr ecx, 5
shr eax, 0xa
and cl, 0x1f
and al, 0x1f
shl dl, 3
shl cl, 3
push edx
push ecx
shl al, 3
push eax
jmp 0x43997f
mov ecx, eax
mov dl, al
shr ecx, 5
and dl, 0x1f
and cl, 0x1f
shr eax, 0xa
shl dl, 3
and al, 0x1f
push 0xff
shl cl, 3
push edx
push ecx
shl al, 3
push eax
jmp 0x43997f
and al, 0xf
xor edx, edx
mov byte [esp + 0x38], al
mov dl, ah
mov eax, dword [esp + 0x38]
mov byte [esp + 0x2c], dl
mov ecx, dword [esp + 0x2c]
and eax, 0xff
sub eax, 0x80
and ecx, 0xff
mov dword [esp + 0x30], eax
sub ecx, 0x10
fild dword [esp + 0x30]
mov dword [esp + 0x30], ecx
push 0xff
fild dword [esp + 0x34]
fmul qword [0x6342f8]
fld st(1)
fmul qword [0x6342e8]
fadd st(1)
call fcn.005f5950
fld st(1)
fmul qword [0x6342d8]
push eax
fsubr st(1)
fld st(2)
fmul qword [0x6342c8]
fsubp st(1)
call fcn.005f5950
fxch st(1)
fmul qword [0x6342b8]
push eax
fadd st(1)
call fcn.005f5950
fstp st(0)
push eax
jmp 0x43997f
push 0xf0
push 0
push 0xf0
push 0
push esi
push ebx
push edi
push ebp
call fcn.0040343b
mov ecx, dword [esp + 0x60]
add esp, 0x20
inc edi
add ecx, 4
cmp edi, esi
mov dword [esp + 0x40], ecx
jl 0x4397be
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
inc ebx
add ecx, 4
cmp ebx, eax
mov dword [esp + 0x24], ecx
jl 0x43979f
mov eax, esi
mov edx, dword [esp + 0x18]
imul eax, esi
lea ebp, [ebp + eax*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov ecx, eax
sar ecx, 1
cmp esi, ecx
jne 0x4399dc
add dword [esp + 0x18], 2
mov edx, dword [esp + 0x14]
shl esi, 1
shl edx, 1
cmp esi, eax
mov dword [esp + 0x14], edx
jle 0x439789
mov eax, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x14
mov edi, dword [esp + 0x44]
mov eax, edi
imul eax, dword [esp + 0x48]
shl eax, 2
push eax
mov dword [ebx + 4], eax
call fcn.005f72ef
add esp, 4
cmp ebp, 0xa00
mov dword [ebx], eax
jne 0x439a3c
mov eax, edi
sar eax, 1
je 0x439a3c
mov ecx, dword [esp + 0x18]
mov edx, eax
imul edx, eax
sar eax, 1
lea ecx, [ecx + edx*2]
jne 0x439a2c
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x48]
xor ebp, ebp
test eax, eax
jle 0x439b7e
xor esi, esi
test edi, edi
jle 0x439b71
mov edx, dword [esp + 0x4c]
and edx, 0xff
mov dword [esp + 0x1c], edx
jmp 0x439a68
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov ax, word [ecx]
add ecx, 2
cmp edx, 5
mov dword [esp + 0x18], ecx
ja case.0x439a7f.3
jmp dword [edx*4 + 0x439bbc]
mov edx, eax
mov cl, al
shr edx, 5
and cl, 0x1f
and dl, 0x3f
shr eax, 0xb
shl cl, 3
and al, 0x1f
push 0xff
shl dl, 2
push ecx
push edx
shl al, 3
push eax
mov eax, dword [ebx]
push edi
push ebp
push esi
push eax
jmp 0x439b60
mov ecx, eax
mov dl, al
shr ecx, 0xc
and cl, 0xf
and dl, 0xf
shl cl, 4
shl dl, 4
push ecx
push edx
mov cl, al
xor edx, edx
shr cl, 4
mov dl, ah
mov eax, dword [ebx]
and cl, 0xf
and dl, 0xf
shl cl, 4
shl dl, 4
push ecx
push edx
push edi
push ebp
push esi
push eax
jmp 0x439b60
mov ecx, eax
mov dl, al
and ecx, 0x8000
neg ecx
sbb cl, cl
and dl, 0x1f
and ecx, 0xff
push ecx
mov ecx, eax
shr ecx, 5
shr eax, 0xa
and cl, 0x1f
and al, 0x1f
shl dl, 3
shl cl, 3
push edx
mov edx, dword [ebx]
shl al, 3
push ecx
push eax
push edi
push ebp
push esi
push edx
jmp 0x439b60
mov edx, eax
mov cl, al
shr edx, 5
and cl, 0x1f
and dl, 0x1f
shr eax, 0xa
shl cl, 3
and al, 0x1f
push 0xff
shl dl, 3
push ecx
push edx
shl al, 3
push eax
mov eax, dword [ebx]
push edi
push ebp
push esi
push eax
jmp 0x439b60
mov ecx, dword [ebx]
push 0xf0
push 0
push 0xf0
push 0
push edi
push ebp
push esi
push ecx
call fcn.0040343b
add esp, 0x20
inc esi
cmp esi, edi
jl 0x439a64
mov eax, dword [esp + 0x48]
inc ebp
cmp ebp, eax
jl 0x439a4a
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x2c
ret 0x14