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

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, ecx
sub esp, 0x108
mov esi, 0x68acf8
mov dword [esp], 0
mov dword [ebp + 0xb4], 0x42340000
lea edi, [esp + 0x3c]
movsd dword es:[edi], dword [esi]
xor bl, bl
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp byte [ebp + 0xa], 0
je 0x476e3b
mov esi, dword [0x7e4e9c]
xor eax, eax
mov dword [0xa106e8], eax
mov al, byte [esi + 0x50]
and al, 7
cmp al, 3
jne 0x4769a9
lea eax, [esp + 0x30]
lea ecx, [esi + 0x210]
push 1
push eax
call fcn.0052f9d0
call fcn.004bc140
test eax, eax
je 0x476930
call fcn.004bc140
cmp dword [eax + 0x5f8], 0
je 0x476930
call fcn.004bc140
mov ecx, dword [eax + 0x5f8]
mov dword [esp], ecx
cmp dword [esp], 0
je 0x47698c
call fcn.00649a40
and eax, 0xffff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [0x68afe8]
fmul dword [0x68ae2c]
fadd dword [0x68add8]
fcomp dword [0x68ae08]
fnstsw ax
test ah, 0x45
jne 0x47698c
mov dword [esp + 0x48], 7
mov dword [esp + 0x3c], 1
mov dword [esp + 0x44], 1
mov dword [esp + 0x40], 2
jmp 0x476a96
mov dword [esp + 0x44], 7
mov dword [esp + 0x3c], 2
mov dword [esp + 0x40], 1
jmp 0x476a96
cmp al, 2
jne 0x476ea7
mov edi, esi
mov ecx, dword [edi + 0x1a8]
test ecx, ecx
je 0x4769e0
call fcn.004f4950
test al, al
je 0x4769e0
lea eax, [esp + 0x30]
mov esi, dword [edi + 0x1a8]
lea ecx, [esi + 0x210]
push 1
push eax
call fcn.0052f9d0
jmp 0x4769f9
xor esi, esi
add edi, 0x34
fld dword [edi]
fstp dword [esp + 0x30]
fld dword [edi + 4]
fstp dword [esp + 0x34]
fld dword [edi + 8]
fstp dword [esp + 0x38]
call fcn.004bc140
test eax, eax
je 0x476a1e
call fcn.004bc140
cmp dword [eax + 0x5f8], 0
je 0x476a1e
call fcn.004bc140
mov ecx, dword [eax + 0x5f8]
mov dword [esp], ecx
cmp dword [esp], 0
je 0x476a77
call fcn.00649a40
and eax, 0xffff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [0x68afe8]
fmul dword [0x68ae2c]
fadd dword [0x68add8]
fcomp dword [0x68af1c]
fnstsw ax
test ah, 0x45
jne 0x476a77
mov dword [esp + 0x48], 1
mov dword [esp + 0x3c], 1
mov dword [esp + 0x44], 2
mov dword [esp + 0x40], 7
jmp 0x476a96
mov dword [esp + 0x44], 1
mov dword [esp + 0x3c], 7
mov dword [esp + 0x40], 2
jmp 0x476a96
mov dword [esp + 0x10], 0
jmp 0x476cd7
mov edx, dword [esp + 0xc]
mov eax, edx
sub eax, 1
je 0x476ac5
sub eax, 1
je 0x476b41
sub eax, 5
je 0x476bc9
jmp 0x476be6
cmp dword [esp], 0
je 0x476ae8
lea eax, [esp + 0x30]
lea ecx, [esp + 0x24]
push ecx
push eax
mov ecx, ebp
push dword [esp + 8]
push dword [0x7e4e9c]
call fcn.0046731f
jmp 0x476b62
test esi, esi
je 0x476be6
xor edi, edi
jmp 0x476b31
mov eax, dword [esi + edi*4 + 0x56c]
mov ecx, dword [eax + 0x244]
cmp ecx, 0x31
jne 0x476b20
lea edx, [esp + 0x30]
lea ebx, [esp + 0x24]
mov ecx, ebp
push ebx
push edx
push eax
push dword [0x7e4e9c]
call fcn.0046731f
mov bl, al
test bl, bl
je 0x476b30
mov eax, dword [esi + edi*4 + 0x56c]
jmp 0x476bb4
inc edi
movzx eax, word [esi + 0x594]
cmp edi, eax
jl 0x476af4
jmp 0x476be6
cmp dword [esp], 0
je 0x476b75
lea eax, [esp + 0x30]
lea ecx, [esp + 0x24]
push ecx
push eax
mov ecx, ebp
push dword [esp + 8]
push dword [0x7e4e9c]
call fcn.004671be
mov bl, al
mov eax, dword [esp]
mov dword [esp], 0
mov dword [0x975214], eax
jmp 0x476be6
test esi, esi
je 0x476be6
xor edi, edi
jmp 0x476bbc
mov eax, dword [esi + edi*4 + 0x56c]
mov ecx, dword [eax + 0x244]
cmp ecx, 0x31
jne 0x476ba9
lea edx, [esp + 0x30]
lea ebx, [esp + 0x24]
mov ecx, ebp
push ebx
push edx
push eax
push dword [0x7e4e9c]
call fcn.004671be
mov bl, al
test bl, bl
je 0x476bbb
mov eax, dword [esi + edi*4 + 0x56c]
mov dword [0x975214], eax
jmp 0x476be6
inc edi
movzx eax, word [esi + 0x594]
cmp edi, eax
jl 0x476b7d
jmp 0x476be6
lea eax, [esp + 0x30]
lea ecx, [esp + 0x24]
push ecx
push eax
mov ecx, ebp
push dword [esp + 8]
push dword [0x7e4e9c]
call fcn.00466edb
mov bl, al
test bl, bl
je 0x476ccc
cmp dword [0x975214], 0
je 0x476c07
mov ecx, dword [0x975214]
push 0x975214
call fcn.004c6ae0
mov eax, dword [esp + 0xc]
cmp eax, 2
mov dword [0xa106e8], eax
jne 0x476cd3
call fcn.00649a40
and eax, 0xffff
mov dword [esp + 0x18], eax
fldz
fild dword [esp + 0x18]
fmul dword [0x68afe8]
fmul dword [0x68adcc]
fadd dword [0x68add8]
fst st(1)
fcomp dword [0x68ae2c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x476c60
mov dword [0xa106e8], 2
jmp 0x4774eb
fcom dword [0x68ade4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x476c7f
mov dword [0xa106e8], 3
jmp 0x4774eb
fcom dword [0x68adf4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x476c9e
mov dword [0xa106e8], 4
jmp 0x4774eb
fcom dword [0x68ade8]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x476cbd
mov dword [0xa106e8], 5
jmp 0x4774eb
mov dword [0xa106e8], 6
jmp 0x4774eb
xor eax, eax
mov dword [0x975214], eax
inc dword [esp + 0x10]
cmp dword [0xa106e8], 0
jne 0x476cfb
cmp dword [esp + 0x10], 5
jge 0x476cfb
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + ecx*4 + 0x3c]
test eax, eax
mov dword [esp + 0xc], eax
jg 0x476aa3
fld dword [esp + 0x24]
fstp dword [ebp + 0x174]
fld dword [esp + 0x28]
fstp dword [ebp + 0x178]
fld dword [esp + 0x2c]
fstp dword [ebp + 0x17c]
lea esi, [ebp + 0x174]
lea edi, [esp + 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x174]
lea ebx, [esp + 0x30]
push dword [ebp + 0xb4]
push eax
lea eax, [esp + 0x58]
mov ecx, 0x7e4690
push ebx
push eax
call fcn.00473aa4
fldz
fldz
fld dword [esp + 0x38]
fsub dword [ebp + 0x17c]
fstp st(1)
fld dword [esp + 0x34]
fsub dword [ebp + 0x178]
fstp st(2)
fld dword [esp + 0x30]
fsub dword [ebp + 0x174]
fstp dword [ebp + 0x168]
fld st(1)
fstp dword [ebp + 0x16c]
fst dword [ebp + 0x170]
fcompp
lea ecx, [ebp + 0x168]
call fcn.004dfec0
mov dword [ebp + 0x18c], 0
mov dword [ebp + 0x190], 0
mov dword [ebp + 0x194], 0x3f800000
lea eax, [ebp + 0x18c]
lea edx, [ebp + 0x168]
push eax
lea eax, [esp + 0xac]
push edx
push eax
call fcn.004e00d0
lea esi, [esp + 0xb4]
lea edi, [esp + 0x68]
movsd dword es:[edi], dword [esi]
add esp, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x5c]
call fcn.004dfec0
lea eax, [ebp + 0x168]
lea esi, [esp + 0x5c]
push eax
lea eax, [esp + 0xb8]
push esi
push eax
call fcn.004e00d0
fld dword [esp + 0xc0]
fstp dword [ebp + 0x18c]
fld dword [esp + 0xc4]
fstp dword [ebp + 0x190]
fld dword [esp + 0xc8]
add esp, 0xc
fstp dword [ebp + 0x194]
cmp dword [0xa106e8], 0
je 0x4774e3
xor al, al
mov byte [ebp + 0xa], al
jmp 0x4774e3
mov ecx, dword [0x7e4e9c]
mov al, byte [ecx + 0x50]
and al, 7
cmp al, 3
jne 0x476e53
lea eax, [esp + 0x30]
push 1
push eax
jmp 0x476e7c
cmp al, 2
jne 0x476ea7
mov ecx, dword [ecx + 0x1a8]
test ecx, ecx
je 0x476e89
call fcn.004f4950
test al, al
je 0x476e89
mov eax, dword [0x7e4e9c]
lea ecx, [esp + 0x30]
push 1
push ecx
mov ecx, dword [eax + 0x1a8]
add ecx, 0x210
call fcn.0052f9d0
jmp 0x476eae
mov eax, dword [0x7e4e9c]
add eax, 0x34
fld dword [eax]
fstp dword [esp + 0x30]
fld dword [eax + 4]
fstp dword [esp + 0x34]
fld dword [eax + 8]
fstp dword [esp + 0x38]
jmp 0x476eae
xor al, al
jmp 0x477500
cmp dword [0xa106e8], 1
fldz
fldz
jne 0x476f15
cmp dword [0x975214], 0
je 0x476f15
fcompp
lea eax, [esp + 0x30]
lea ebx, [esp + 0x24]
mov ecx, ebp
push ebx
push eax
push dword [0x975214]
push dword [0x7e4e9c]
call fcn.0046731f
fldz
fld dword [0x68ace0]
fmul dword [0x97542c]
mov bl, al
fadd dword [ebp + 0x17c]
fstp st(1)
fld dword [esp + 0x2c]
fcomp st(1)
fnstsw ax
test ah, 0x45
jne 0x4774f2
fst dword [esp + 0x2c]
jmp 0x4774f2
cmp dword [0xa106e8], 2
jle 0x477153
cmp dword [0xa106e8], 6
jg 0x477153
fld dword [ebp + 0x174]
fstp dword [esp + 0x24]
fld dword [ebp + 0x178]
fstp dword [esp + 0x28]
fld dword [ebp + 0x17c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x38]
fsub dword [ebp + 0x17c]
fstp st(1)
fld dword [esp + 0x34]
fsub dword [ebp + 0x178]
fstp st(2)
fld dword [esp + 0x30]
fsub dword [ebp + 0x174]
fstp dword [ebp + 0x168]
fld st(1)
fstp dword [ebp + 0x16c]
fst dword [ebp + 0x170]
fcompp
lea ecx, [ebp + 0x168]
call fcn.004dfec0
mov dword [ebp + 0x18c], 0
mov dword [ebp + 0x190], 0
mov dword [ebp + 0x194], 0x3f800000
lea eax, [ebp + 0x18c]
lea edx, [ebp + 0x168]
push eax
lea eax, [esp + 0xc4]
push edx
push eax
call fcn.004e00d0
lea esi, [esp + 0xcc]
lea edi, [esp + 0x74]
movsd dword es:[edi], dword [esi]
add esp, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x68]
call fcn.004dfec0
cmp dword [0xa106e8], 5
je 0x476ff5
cmp dword [0xa106e8], 6
jne 0x47701f
fld dword [esp + 0x68]
fmul dword [0x68aed8]
fstp dword [esp + 0x68]
fld dword [esp + 0x6c]
fmul dword [0x68aed8]
fstp dword [esp + 0x6c]
fld dword [esp + 0x70]
fmul dword [0x68aed8]
fstp dword [esp + 0x70]
fld dword [0x68ae08]
fmul dword [esp + 0x68]
push 1
push 0
fadd dword [ebp + 0x174]
push 1
push 0
fstp dword [esp + 0xdc]
fld dword [0x68ae08]
fmul dword [esp + 0x7c]
push 1
push 1
fadd dword [ebp + 0x178]
push dword [0x7e4e9c]
push dword [0x68afe4]
fstp dword [esp + 0xf0]
fld dword [0x68ae08]
fmul dword [esp + 0x90]
fadd dword [ebp + 0x17c]
fstp dword [esp + 0xf4]
push dword [esp + 0xf4]
push dword [esp + 0xf4]
push dword [esp + 0xf4]
call fcn.004d3f60
add esp, 0x2c
test eax, eax
jne 0x47736d
fld dword [0x68acd8]
fmul dword [esp + 0x68]
cmp dword [0xa106e8], 4
mov bl, 1
fmul dword [0x97542c]
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [0x68acd8]
fmul dword [esp + 0x6c]
fmul dword [0x97542c]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [0x68acd8]
fmul dword [esp + 0x70]
fmul dword [0x97542c]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
je 0x477100
cmp dword [0xa106e8], 6
jne 0x477112
fld dword [0x68acdc]
fmul dword [0x97542c]
fadd dword [esp + 0x2c]
jmp 0x47714a
xor al, al
mov byte [esp + 0x77], al
lea eax, [esp + 0x77]
push eax
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.004d53c0
add esp, 0x10
cmp byte [esp + 0x77], 0
fstp dword [esp + 0x14]
je 0x47736d
fld dword [esp + 0x14]
fadd dword [0x68acec]
fstp dword [esp + 0x2c]
jmp 0x47736d
cmp dword [0xa106e8], 7
jne 0x4774f9
fld dword [ebp + 0x174]
fstp dword [esp + 0x24]
fld dword [ebp + 0x178]
fstp dword [esp + 0x28]
fld dword [ebp + 0x17c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x38]
fsub dword [esp + 0x2c]
fstp st(1)
fld dword [esp + 0x34]
fsub dword [esp + 0x28]
fstp st(2)
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
fstp dword [ebp + 0x168]
fld st(1)
fstp dword [ebp + 0x16c]
fst dword [ebp + 0x170]
fcompp
mov dword [ebp + 0x170], 0
lea ecx, [ebp + 0x168]
call fcn.004dfec0
mov dword [ebp + 0x18c], 0
mov dword [ebp + 0x190], 0
mov dword [ebp + 0x194], 0x3f800000
lea eax, [ebp + 0x18c]
lea ecx, [ebp + 0x168]
push eax
lea eax, [esp + 0xdc]
push ecx
push eax
call fcn.004e00d0
lea esi, [esp + 0xe4]
lea edi, [esp + 0x84]
movsd dword es:[edi], dword [esi]
add esp, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x78]
call fcn.004dfec0
fldz
fldz
fld dword [0x68acf0]
fmul dword [esp + 0x80]
fld dword [esp + 0x38]
fsub dword [esp + 0x2c]
faddp st(1)
fstp st(1)
fld dword [0x68acf0]
fmul dword [esp + 0x7c]
fld dword [esp + 0x34]
fsub dword [esp + 0x28]
faddp st(1)
fstp st(2)
fld dword [0x68acf0]
fmul dword [esp + 0x78]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
faddp st(1)
fstp dword [ebp + 0x168]
fld st(1)
fstp dword [ebp + 0x16c]
fst dword [ebp + 0x170]
fcompp
mov dword [ebp + 0x170], 0
lea ecx, [ebp + 0x168]
call fcn.004dfec0
fld dword [0x68ae08]
fmul dword [ebp + 0x168]
push 1
push 0
fadd dword [esp + 0x2c]
push 1
push 0
fstp dword [esp + 0xf4]
fld dword [0x68ae08]
fmul dword [ebp + 0x16c]
push 1
push 1
fadd dword [esp + 0x40]
push dword [0x7e4e9c]
push dword [0x68afe4]
fstp dword [esp + 0x108]
fld dword [0x68ae08]
fmul dword [ebp + 0x170]
fadd dword [esp + 0x4c]
fstp dword [esp + 0x10c]
push dword [esp + 0x10c]
push dword [esp + 0x10c]
push dword [esp + 0x10c]
call fcn.004d3f60
add esp, 0x2c
test eax, eax
fldz
fldz
jne 0x4774f9
fld dword [0x68acf4]
fmul dword [ebp + 0x170]
mov bl, 1
fmul dword [0x97542c]
fstp st(1)
fld dword [0x68acf4]
fmul dword [ebp + 0x16c]
fmul dword [0x97542c]
fstp st(2)
fld dword [0x68acf4]
fmul dword [ebp + 0x168]
fmul dword [0x97542c]
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fadd st(2)
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fadd st(1)
fstp dword [esp + 0x2c]
fcompp
test bl, bl
je 0x4774af
fld dword [esp + 0x24]
fstp dword [ebp + 0x174]
fld dword [esp + 0x28]
fstp dword [ebp + 0x178]
fld dword [esp + 0x2c]
fstp dword [ebp + 0x17c]
lea esi, [ebp + 0x174]
lea edi, [esp + 0x84]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x174]
lea edi, [esp + 0x30]
push dword [ebp + 0xb4]
push eax
lea eax, [esp + 0x8c]
mov ecx, 0x7e4690
push edi
push eax
call fcn.00473aa4
fldz
fldz
fld dword [esp + 0x38]
fsub dword [ebp + 0x17c]
fstp st(1)
fld dword [esp + 0x34]
fsub dword [ebp + 0x178]
fstp st(2)
fld dword [esp + 0x30]
fsub dword [ebp + 0x174]
fstp dword [ebp + 0x168]
fld st(1)
fstp dword [ebp + 0x16c]
fst dword [ebp + 0x170]
fcompp
lea ecx, [ebp + 0x168]
call fcn.004dfec0
mov dword [ebp + 0x18c], 0
mov dword [ebp + 0x190], 0
mov dword [ebp + 0x194], 0x3f800000
lea eax, [ebp + 0x18c]
lea esi, [ebp + 0x168]
push eax
lea eax, [esp + 0xf4]
push esi
push eax
call fcn.004e00d0
lea esi, [esp + 0xfc]
lea edi, [esp + 0x9c]
movsd dword es:[edi], dword [esi]
add esp, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
call fcn.004dfec0
lea eax, [ebp + 0x168]
lea edx, [esp + 0x90]
push eax
lea eax, [esp + 0x100]
push edx
push eax
call fcn.004e00d0
fld dword [esp + 0x108]
fstp dword [ebp + 0x18c]
fld dword [esp + 0x10c]
fstp dword [ebp + 0x190]
fld dword [esp + 0x110]
add esp, 0xc
fstp dword [ebp + 0x194]
jmp 0x4774e3
lea esi, [ebp + 0x174]
lea edi, [esp + 0x9c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x30]
push dword [ebp + 0xb4]
add ebp, 0x174
push ebp
push ecx
mov ecx, 0x7e4690
push eax
call fcn.00473aa4
mov al, 1
jmp 0x477500
fstp st(0)
jmp 0x476cd3
fstp st(0)
jmp 0x47736d
fcompp
jmp 0x47736d
add esp, 0x108
pop ebp
pop edi
pop esi
pop ebx
ret