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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
push esi
mov esi, ecx
xor eax, eax
push edi
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x3c], eax
cmp ecx, eax
jge 0x435e69
mov dword [esi + 4], 1
mov al, byte [esi + 0x24]
test al, al
je 0x435e85
mov eax, dword [esi + 0x228]
mov ecx, dword [ebp + 8]
cdq
sub eax, edx
sar eax, 1
neg eax
add ecx, eax
mov dword [ebp + 8], ecx
fild dword [ebp + 8]
fdiv dword [esi + 0x10]
call fcn.0043bcf6
movsx ebx, word [esi + 0x52]
mov dword [esp + 0x10], ebx
mov edi, eax
fild dword [esp + 0x10]
fild dword [ebp + 0xc]
mov dword [esi + 0x210], edi
fdiv dword [esi + 0x10]
fsubp st(1)
call fcn.0043bcf6
mov ecx, eax
test edi, edi
mov dword [esi + 0x214], ecx
jl 0x4368e0
test ecx, ecx
jl 0x4368e0
mov al, byte [esi + 0x24]
test al, al
movsx eax, word [esi + 0x50]
je 0x435eeb
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jge 0x4368e0
cmp ecx, ebx
jge 0x4368e0
jmp 0x435efb
cmp edi, eax
jge 0x4368e0
cmp ecx, ebx
jge 0x4368e0
mov cx, word [esi + 0x214]
mov ax, word [esi + 0x210]
sub cx, word [esi + 0x21c]
sub ax, word [esi + 0x218]
movsx ecx, cx
movsx edx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fcomp qword [0x43fe68]
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jne 0x4368e0
mov eax, dword [esi + 4]
movsx ecx, word [esi + 0x210]
movsx edi, word [esi + 0x214]
cdq
sub eax, edx
mov dword [esi + 0x218], ecx
sar eax, 1
mov dword [esi + 0x21c], edi
mov edx, dword [esi + 0x60]
mov dword [esp + 0x84], eax
mov eax, dword [esi + 0x64]
imul eax, edi
imul edx, ecx
mov ecx, dword [esi + 0x38]
add eax, edx
mov edi, dword [ecx]
add eax, edi
mov edi, 2
mov dword [esi + 0x74], eax
mov ax, word [esi + 0x5c]
mov ecx, dword [esi + 0x74]
cmp ax, di
jle 0x435faa
movzx dx, byte [ecx]
mov word [esp + 0x2c], dx
inc ecx
cmp ax, 1
jle 0x435fba
movzx dx, byte [ecx]
mov word [esp + 0x34], dx
inc ecx
test ax, ax
jle 0x435fc8
movzx dx, byte [ecx]
mov word [esp + 0x30], dx
cmp ax, 3
jle 0x435fd8
movzx ax, byte [ecx + 1]
mov word [esp + 0x24], ax
cmp dword [esi + 0xc], edi
je 0x436009
mov edx, dword [esi + 0x208]
mov cx, word [esp + 0x2c]
mov ax, word [esp + 0x34]
mov word [edx + 4], cx
mov cx, word [esp + 0x30]
mov word [edx + 6], ax
mov ax, word [esp + 0x24]
mov word [edx + 8], cx
mov word [edx + 0xa], ax
jmp 0x43600d
mov edx, dword [esp + 0x70]
cmp dword [esi + 0xc], edi
jne 0x43601b
mov ecx, dword [esi + 0x208]
mov edx, dword [ecx + 0xc]
movsx ebx, word [esi + 0x52]
test edx, edx
mov dword [esp + 0x58], ebx
je 0x4368e0
mov ax, word [edx + 4]
mov edi, dword [esi + 4]
mov cx, word [edx + 6]
mov word [esp + 0x60], ax
mov ax, word [edx + 8]
mov word [esp + 0x68], cx
mov cx, word [edx + 0xa]
mov edx, dword [edx + 0xc]
mov word [esp + 0x64], ax
mov eax, edi
neg eax
cmp eax, edi
mov word [esp + 0x5c], cx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
jg 0x4368d2
mov cx, word [esi + 0x214]
add cx, ax
test cx, cx
mov dword [esp + 0x6c], ecx
jl 0x4368be
cmp cx, word [esi + 0x52]
jge 0x4368be
imul eax, ebx
cdq
idiv edi
mov edx, dword [esi + 0x234]
mov ecx, eax
add ecx, ebx
shl ecx, 1
movsx eax, word [edx + ecx]
imul eax, edi
cdq
idiv dword [esp + 0x58]
mov ebx, eax
mov ax, word [esi + 0x210]
add ebx, eax
mov eax, dword [esi + 0x230]
mov dword [esp + 0x88], ebx
movsx eax, word [eax + ecx]
imul eax, edi
cdq
idiv dword [esp + 0x58]
mov ecx, eax
mov ax, word [esi + 0x210]
add ecx, eax
cmp cx, bx
mov dword [esp + 0x40], ecx
jg 0x4368b6
cmp word [esp + 0x40], 0
jl 0x43689f
mov cx, word [esp + 0x40]
cmp cx, word [esi + 0x50]
jge 0x43689f
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x40]
mov cx, dx
mov ax, di
sub cx, word [esi + 0x214]
sub ax, word [esi + 0x210]
movsx ecx, cx
movsx eax, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp qword [esp + 0x50]
fstp st(0)
fstp st(0)
fild dword [esi + 4]
fld qword [esp + 0x50]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x43615b
fstp qword [esp + 0x50]
jmp 0x43615d
fstp st(0)
mov eax, dword [esi + 0x64]
movsx ecx, di
mov edi, dword [esi + 0x60]
movsx edx, dx
imul edi, ecx
imul eax, edx
add eax, edi
mov edi, dword [esi + 0x38]
add eax, dword [edi]
mov dword [esi + 0x74], eax
mov ax, word [esi + 0x5c]
mov ebx, dword [esi + 0x74]
cmp ax, 2
jle 0x436190
movzx di, byte [ebx]
mov word [esp + 0x2c], di
inc ebx
cmp ax, 1
jle 0x4361a0
movzx di, byte [ebx]
mov word [esp + 0x34], di
inc ebx
test ax, ax
jle 0x4361ae
movzx di, byte [ebx]
mov word [esp + 0x30], di
cmp ax, 3
jle 0x4361be
movzx ax, byte [ebx + 1]
mov word [esp + 0x24], ax
mov eax, dword [esp + 0x2c]
mov edi, dword [esi + 0x150]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x154]
imul eax, edx
imul edi, ecx
add eax, edi
mov edi, dword [esi + 0x128]
add eax, dword [edi]
mov dword [esi + 0x164], eax
mov ax, word [esi + 0x14c]
mov ebx, dword [esi + 0x164]
cmp ax, 2
jle 0x43621d
movzx di, byte [ebx]
mov word [esp + 0x2c], di
inc ebx
cmp ax, 1
jle 0x43622d
movzx di, byte [ebx]
mov word [esp + 0x34], di
inc ebx
test ax, ax
jle 0x43623b
movzx di, byte [ebx]
mov word [esp + 0x30], di
cmp ax, 3
jle 0x43624b
movzx ax, byte [ebx + 1]
mov word [esp + 0x24], ax
mov eax, dword [esi + 0x1a4]
mov edi, dword [esi + 0x1a0]
imul eax, edx
imul edi, ecx
add eax, edi
mov edi, dword [esi + 0x178]
mov ebx, dword [edi]
add eax, ebx
xor ebx, ebx
mov dword [esi + 0x1b4], eax
mov bl, byte [eax]
mov eax, dword [esi + 0xb4]
imul eax, edx
mov edx, dword [esi + 0xb0]
mov edi, ebx
imul edx, ecx
mov ecx, dword [esi + 0x88]
add eax, edx
mov dword [esp + 0x8c], edi
add eax, dword [ecx]
mov dword [esi + 0xc4], eax
mov ax, word [esi + 0xac]
mov ecx, dword [esi + 0xc4]
cmp ax, 2
jle 0x4362bb
movzx dx, byte [ecx]
mov word [esp + 0x2c], dx
inc ecx
cmp ax, 1
jle 0x4362cb
movzx dx, byte [ecx]
mov word [esp + 0x34], dx
inc ecx
test ax, ax
jle 0x4362d9
movzx dx, byte [ecx]
mov word [esp + 0x30], dx
cmp ax, 3
jle 0x4362e9
movzx ax, byte [ecx + 1]
mov word [esp + 0x24], ax
mov ecx, dword [esi + 4]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fld st(0)
fmul qword [0x441a18]
fld qword [esp + 0x50]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x436313
fstp st(0)
fld qword [0x43fe68]
jmp 0x436353
fld st(1)
fmul qword [0x4437e0]
fcomp qword [esp + 0x50]
fnstsw ax
test ah, 0x41
jne 0x436330
fsubr qword [esp + 0x50]
fld st(0)
fmulp st(1)
jmp 0x436353
mov edx, ecx
imul edx, ecx
fstp st(0)
fld st(0)
fsub qword [esp + 0x50]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul qword [0x4437d8]
fld st(1)
fmul st(2)
fsubp st(1)
fstp st(1)
fmul qword [0x4437d0]
cmp dword [esi + 0xc], 3
fdiv st(1)
jne 0x436430
cmp dword [esi + 0xac], 4
jne 0x436378
mov dword [esp + 0x28], 0xff
jmp 0x43639f
movsx eax, word [esp + 0x84]
fld st(1)
fsub st(1)
mov dword [esp + 0x20], eax
fmul qword [0x4437c8]
fild dword [esp + 0x20]
faddp st(1)
fdiv st(2)
call fcn.0043bcf6
mov dword [esp + 0x28], eax
movsx edx, word [esp + 0x84]
movsx ecx, word [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x50], ecx
fild dword [esp + 0x1c]
fild dword [esp + 0x50]
fmul st(2)
fadd st(1)
fdiv st(3)
call fcn.0043bcf6
mov dword [esp + 0x4c], eax
movsx eax, word [esp + 0x48]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul st(2)
fadd st(1)
fdiv st(3)
call fcn.0043bcf6
movsx ecx, word [esp + 0x78]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x38], eax
fild dword [esp + 0x48]
fmul st(2)
fadd st(1)
fdiv st(3)
call fcn.0043bcf6
movsx edx, word [esp + 0x10]
mov dword [esp + 0x1c], edx
mov ebx, eax
fild dword [esp + 0x1c]
mov dword [esp + 0x44], ebx
fmul st(2)
fadd st(1)
fdiv st(3)
call fcn.0043bcf6
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x4365dc
mov eax, ecx
cdq
fstp st(0)
sub eax, edx
fld st(0)
fsub qword [esp + 0x50]
fimul dword [esi + 8]
sar eax, 1
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
faddp st(1)
fdiv st(1)
call fcn.0043bcf6
movsx edx, word [esp + 0x1c]
fstp st(0)
movsx ecx, word [esp + 0x60]
movsx edi, word [esp + 0x68]
mov dword [esp + 0x50], edx
sub edx, ecx
mov dword [esp + 0x1c], edx
movsx edx, word [esp + 0x48]
fild dword [esp + 0x1c]
movsx ebx, word [esp + 0x64]
mov dword [esp + 0x20], edx
sub edx, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], ebx
movsx edx, word [esp + 0x78]
fild dword [esp + 0x1c]
mov dword [esp + 0x48], edx
sub edx, ebx
movsx ebx, word [esp + 0x10]
mov dword [esp + 0x78], edx
mov dword [esp + 0x1c], ebx
movsx edx, word [esp + 0x5c]
fild dword [esp + 0x78]
sub ebx, edx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x60]
fild dword [esp + 0x10]
add ebx, eax
movsx ebx, bx
sub ecx, ebx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x68]
add ecx, eax
fild dword [esp + 0x10]
movsx ecx, cx
fstp qword [esp + 0x98]
sub edi, ecx
mov ecx, dword [esp + 0x64]
add ecx, eax
mov dword [esp + 0x10], edi
fild dword [esp + 0x10]
movsx edi, cx
fstp qword [esp + 0x90]
mov ecx, dword [esp + 0x28]
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x5c]
fild dword [esp + 0x10]
add eax, ecx
movsx eax, ax
fstp qword [esp + 0x78]
sub edx, eax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp qword [esp + 0x10]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fld st(4)
fmul st(5)
faddp st(1)
fsqrt
fstp st(4)
fstp st(0)
fstp st(0)
fstp st(0)
fld qword [esp + 0x10]
fmul qword [esp + 0x10]
fld qword [esp + 0x78]
fmul qword [esp + 0x78]
faddp st(1)
fld qword [esp + 0x90]
fmul qword [esp + 0x90]
faddp st(1)
fld qword [esp + 0x98]
fmul qword [esp + 0x98]
faddp st(1)
fsqrt
fstp qword [esp + 0x10]
fcom qword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x436588
fstp st(0)
fld qword [esp + 0x10]
fld qword [esp + 0x10]
fcomp qword [0x4407e8]
fnstsw ax
test ah, 1
je 0x43659d
fstp st(0)
jmp 0x4365c4
fdiv qword [esp + 0x10]
fsubr qword [0x4407e8]
fmul qword [0x4437c8]
call fcn.0043bcf6
cmp ax, 0xff
jle 0x4365bf
mov eax, 0xff
jmp 0x4365c6
test ax, ax
jge 0x4365c6
xor eax, eax
mov edi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x44]
movsx edx, ax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], edx
cmp edi, edx
jle 0x4365e8
mov ecx, edi
mov dword [esp + 0x28], ecx
jmp 0x43665b
mov ecx, dword [esi + 0x1b4]
mov byte [ecx], dl
mov edx, dword [esi + 0x154]
movsx ecx, word [esp + 0x6c]
mov edi, dword [esi + 0x150]
imul edx, ecx
movsx ecx, word [esp + 0x40]
imul edi, ecx
mov ecx, dword [esi + 0x128]
add edx, edi
add edx, dword [ecx]
mov dword [esi + 0x164], edx
mov di, word [esi + 0x14c]
cmp di, 2
mov ecx, edx
jle 0x436632
mov dl, byte [esp + 0x60]
mov byte [ecx], dl
inc ecx
cmp di, 1
jle 0x43663f
mov dl, byte [esp + 0x68]
mov byte [ecx], dl
inc ecx
test di, di
jle 0x43664a
mov dl, byte [esp + 0x64]
mov byte [ecx], dl
cmp di, 3
jle 0x436657
mov dl, byte [esp + 0x5c]
mov byte [ecx + 1], dl
mov ecx, dword [esp + 0x28]
cmp dword [esi + 0xc], 3
je 0x436762
movsx edi, word [esp + 0x60]
mov edx, dword [esp + 0x50]
imul edi, ecx
mov eax, edx
shl eax, 8
sub eax, edx
sub eax, edi
mov edi, 0xff
add eax, 0x80
cdq
and edx, edi
add eax, edx
sar eax, 8
test ax, ax
mov dword [esp + 0x4c], eax
jge 0x43669f
mov dword [esp + 0x4c], 0
jmp 0x4366a8
cmp ax, di
jle 0x4366a8
mov dword [esp + 0x4c], edi
movsx ebx, word [esp + 0x68]
mov edx, dword [esp + 0x20]
imul ebx, ecx
mov eax, edx
shl eax, 8
sub eax, edx
sub eax, ebx
add eax, 0x80
cdq
and edx, edi
add eax, edx
sar eax, 8
test ax, ax
mov dword [esp + 0x38], eax
jge 0x4366dd
mov dword [esp + 0x38], 0
jmp 0x4366e6
cmp ax, di
jle 0x4366e6
mov dword [esp + 0x38], edi
movsx ebx, word [esp + 0x64]
mov edx, dword [esp + 0x48]
imul ebx, ecx
mov eax, edx
shl eax, 8
sub eax, edx
sub eax, ebx
add eax, 0x80
cdq
and edx, edi
add eax, edx
mov ebx, eax
sar ebx, 8
test bx, bx
mov dword [esp + 0x44], ebx
jge 0x436717
xor ebx, ebx
jmp 0x43671e
cmp bx, di
jle 0x436722
mov ebx, edi
mov dword [esp + 0x44], ebx
movsx edx, word [esp + 0x5c]
imul edx, ecx
mov ecx, dword [esp + 0x1c]
mov eax, ecx
shl eax, 8
sub eax, ecx
sub eax, edx
add eax, 0x80
cdq
and edx, edi
add eax, edx
sar eax, 8
test ax, ax
mov dword [esp + 0x3c], eax
jge 0x436755
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x436767
cmp ax, di
jle 0x436767
mov eax, edi
mov dword [esp + 0x3c], eax
jmp 0x436767
mov edi, 0xff
cmp dword [esi + 0xac], 4
jne 0x436784
mov edx, edi
mov ebx, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x44], ebx
mov eax, edi
jmp 0x4367ea
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
movsx ecx, dx
and edi, 0xffff
cmp edi, ecx
jge 0x4367a1
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x4c], edx
movsx ecx, word [esp + 0x38]
mov edi, dword [esp + 0x34]
and edi, 0xffff
cmp edi, ecx
jge 0x4367bc
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
mov edi, dword [esp + 0x30]
movsx ecx, bx
and edi, 0xffff
cmp edi, ecx
jge 0x4367d5
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x44], ebx
mov edi, dword [esp + 0x24]
movsx ecx, ax
and edi, 0xffff
cmp edi, ecx
jge 0x4367ee
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov cx, word [esi + 0xac]
mov edi, dword [esi + 0xc4]
cmp cx, 2
jle 0x436804
mov byte [edi], dl
inc edi
cmp cx, 1
jle 0x436811
mov dl, byte [esp + 0x38]
mov byte [edi], dl
inc edi
test cx, cx
jle 0x436818
mov byte [edi], bl
cmp cx, 3
jle 0x436821
mov byte [edi + 1], al
mov eax, dword [esi + 0x14]
test eax, eax
jge 0x43689f
movsx eax, word [esp + 0x6c]
mov ecx, dword [esi + 0x104]
mov edx, dword [esi + 0x100]
imul ecx, eax
movsx eax, word [esp + 0x40]
imul edx, eax
mov eax, dword [esi + 0xd8]
add ecx, edx
add ecx, dword [eax]
mov dword [esi + 0x114], ecx
mov cx, word [esi + 0xfc]
mov eax, dword [esi + 0x114]
cmp cx, 2
jle 0x436871
movzx dx, byte [eax]
mov word [esp + 0x2c], dx
inc eax
cmp cx, 1
jle 0x436881
movzx dx, byte [eax]
mov word [esp + 0x34], dx
inc eax
test cx, cx
jle 0x43688f
movzx dx, byte [eax]
mov word [esp + 0x30], dx
cmp cx, 3
jle 0x43689f
movzx ax, byte [eax + 1]
mov word [esp + 0x24], ax
mov eax, dword [esp + 0x40]
inc eax
cmp ax, word [esp + 0x88]
mov dword [esp + 0x40], eax
jle 0x4360e4
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov edi, dword [esi + 4]
mov ebx, dword [esp + 0x58]
inc eax
cmp eax, edi
mov dword [esp + 0x74], eax
jle 0x436069
cmp dword [esi + 0xc], 2
jne 0x4368e0
test edx, edx
jne 0x43602b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8