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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
mov esi, dword [fcn.0065f1b0]
push edi
mov edi, dword [ebp + 8]
xor eax, eax
push 1
lea ecx, [esp + 0x17]
mov dword [esp + 0x25], eax
push edi
push ecx
mov byte [esp + 0x2c], 0
mov word [esp + 0x31], ax
call esi
lea edx, [edi + 1]
push 6
lea eax, [esp + 0x30]
push edx
push eax
call esi
movsx cx, byte [esp + 0x2b]
lea edx, [esp + 0x38]
push ecx
push edx
mov byte [esp + 0x46], 0
mov dword [esp + 0x34], 0x42c80000
call fcn.00555190
add esp, 0x20
cmp al, 2
jle 0x555233
movsx eax, al
add eax, 0xfffffffe
xor ecx, ecx
test eax, eax
jle 0x555233
fld dword [esp + 0x14]
fmul qword [0x665d58]
inc ecx
movsx edx, cx
cmp edx, eax
jl 0x555221
fstp dword [esp + 0x14]
mov ebx, dword [ebp + 0xc]
lea eax, [edi + 7]
push 2
push eax
push ebx
mov dword [ebx], 0
call esi
lea ecx, [edi + 9]
lea edx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
mov si, ax
lea ecx, [esp + 0x3c]
fld dword [esp + 0x28]
add esi, 9
fdivr qword [esp + 0x3c]
movsx eax, si
add eax, edi
push eax
push ecx
fstp dword [ebx + 0x14]
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x30]
fdivr qword [esp + 0x44]
add esi, eax
lea eax, [esp + 0x44]
movsx edx, si
add edx, edi
push edx
push eax
fadd dword [ebx + 0x14]
fstp dword [ebx + 4]
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x38]
fdivr qword [esp + 0x4c]
add esi, eax
lea edx, [esp + 0x4c]
movsx ecx, si
add ecx, edi
push ecx
push edx
fadd dword [ebx + 0x14]
fstp dword [ebx + 8]
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x40]
fdivr qword [esp + 0x54]
add esi, eax
lea ecx, [esp + 0x54]
movsx eax, si
add eax, edi
push eax
push ecx
fadd dword [ebx + 0x14]
fstp dword [ebx + 0xc]
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x48]
fdivr qword [esp + 0x5c]
add esi, eax
lea eax, [esp + 0x5c]
movsx edx, si
add edx, edi
push edx
push eax
fadd dword [ebx + 0x14]
fstp dword [ebx + 0x10]
call dword [sym.imp.TGear.dll_BufToDouble]
add esi, eax
lea edx, [esp + 0x64]
movsx ecx, si
add ecx, edi
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
add esp, 0x44
add esi, eax
movsx ax, byte [esp + 0x13]
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00473d40
add esp, 8
test eax, eax
je 0x555336
fld qword [esp + 0x28]
fmul qword [0x65f9b0]
jmp 0x555341
fld dword [esp + 0x14]
fdivr qword [esp + 0x28]
fadd dword [ebx + 0x14]
fstp dword [ebx + 0x1c]
movsx edx, si
add edx, edi
lea eax, [esp + 0x28]
push edx
push eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x30]
add esi, eax
call fcn.00645030
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x30]
push ecx
push edx
mov dword [ebx + 0x20], eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x38]
add esi, eax
call fcn.00645030
mov dword [ebx + 0x24], eax
push 4
movsx eax, si
add eax, edi
lea ecx, [ebx + 0x28]
push eax
push ecx
call dword [fcn.0065f1b0]
add esi, 4
lea eax, [esp + 0x44]
movsx edx, si
add edx, edi
push edx
push eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x4c]
add esi, eax
call fcn.00645030
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x4c]
push ecx
push edx
mov dword [ebx + 0x2c], eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x54]
add esi, eax
call fcn.00645030
mov dword [ebx + 0x30], eax
lea ecx, [esp + 0x54]
movsx eax, si
add eax, edi
push eax
push ecx
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x48]
fdivr qword [esp + 0x5c]
add esi, eax
mov al, byte [esp + 0x54]
add esp, 0x34
cmp al, 0x41
fstp dword [ebx + 0x34]
jl 0x55550f
movsx edx, si
add edx, edi
lea eax, [esp + 0x28]
push edx
push eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x30]
add esi, eax
call fcn.00645030
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x30]
push ecx
push edx
mov dword [ebx + 0x38], eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x24]
fdivr qword [esp + 0x38]
add esi, eax
lea ecx, [esp + 0x38]
movsx eax, si
add eax, edi
push eax
push ecx
fadd dword [ebx + 0x14]
fstp dword [ebx + 0x3c]
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x2c]
fdivr qword [esp + 0x40]
add esi, eax
lea eax, [esp + 0x40]
movsx edx, si
add edx, edi
push edx
push eax
fadd dword [ebx + 0x14]
fstp dword [ebx + 0x64]
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x48]
add esi, eax
lea edx, [esp + 0x48]
fstp dword [ebx + 0x68]
movsx ecx, si
add ecx, edi
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x3c]
fdivr qword [esp + 0x50]
add esp, 0x28
add esi, eax
lea eax, [ebx + 0x78]
mov dword [esp + 0x14], 3
mov dword [esp + 0x18], eax
fadd dword [ebx + 4]
fstp dword [ebx + 0x6c]
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x30]
add esi, eax
call fcn.00645030
mov ecx, dword [esp + 0x20]
movsx edx, si
mov dword [ecx - 0x28], eax
add edx, edi
lea eax, [esp + 0x30]
push edx
push eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x38]
add esp, 0x10
add esi, eax
call fcn.00645030
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add ecx, 4
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
jne 0x5554b0
jmp 0x5557c4
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
add esi, eax
lea ecx, [esp + 0x28]
movsx ax, byte [esp + 0x1b]
push eax
push ecx
call fcn.00473d40
add esp, 0x10
test eax, eax
je 0x555547
fld dword [esp + 0x14]
fdivr qword [esp + 0x28]
fadd dword [ebx + 0x14]
jmp 0x555551
fld qword [esp + 0x28]
fmul qword [0x65f9b0]
fstp dword [ebx + 0x38]
mov dword [esp + 0x18], 0
movsx dx, byte [esp + 0x13]
lea eax, [esp + 0x20]
push edx
push eax
call fcn.00473d40
add esp, 8
test eax, eax
je 0x5555d6
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x30]
fmul qword [0x665ee8]
add esi, eax
lea ecx, [esp + 0x30]
movsx eax, word [esp + 0x20]
fstp dword [ebx + eax*4 + 0x3c]
movsx eax, si
add eax, edi
push eax
push ecx
call dword [sym.imp.TGear.dll_BufToDouble]
add esi, eax
mov eax, dword [esp + 0x28]
add esp, 0x10
cmp ax, 2
jne 0x5555c7
fld dword [esp + 0x14]
fdivr qword [esp + 0x28]
fstp dword [ebx + 0x6c]
jmp 0x555627
fld qword [esp + 0x28]
fmul qword [0x665ee8]
movsx eax, ax
jmp 0x555623
movsx edx, si
add edx, edi
lea eax, [esp + 0x28]
push edx
push eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x1c]
fdivr qword [esp + 0x30]
add esi, eax
lea edx, [esp + 0x30]
movsx eax, word [esp + 0x20]
movsx ecx, si
add ecx, edi
push ecx
push edx
fadd dword [ebx + 0x14]
fstp dword [ebx + eax*4 + 0x3c]
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x24]
fdivr qword [esp + 0x38]
add esp, 0x10
add esi, eax
movsx eax, word [esp + 0x18]
fadd dword [ebx + 0x14]
fstp dword [ebx + eax*4 + 0x64]
movsx eax, si
add eax, edi
lea ecx, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x30]
add esi, eax
call fcn.00645030
movsx ecx, word [esp + 0x20]
movsx edx, si
mov dword [ebx + ecx*4 + 0x50], eax
add edx, edi
lea eax, [esp + 0x30]
push edx
push eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x38]
add esp, 0x10
add esi, eax
call fcn.00645030
movsx ecx, word [esp + 0x18]
mov dword [ebx + ecx*4 + 0x78], eax
mov eax, dword [esp + 0x18]
inc eax
cmp ax, 3
mov dword [esp + 0x18], eax
jl 0x55555c
mov eax, dword [ebp + 0x14]
xor edx, edx
cmp eax, edx
je 0x5557ab
lea ecx, [ebx + 0x70]
mov dword [esp + 0x1c], 2
mov dword [esp + 0x18], ecx
movsx dx, byte [esp + 0x13]
lea eax, [esp + 0x20]
push edx
push eax
call fcn.00473d40
add esp, 8
test eax, eax
movsx ecx, si
je 0x555701
add ecx, edi
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x30]
add esi, eax
mov eax, dword [esp + 0x20]
fmul qword [0x665ee8]
fstp dword [eax - 0x28]
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x30]
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x38]
fmul qword [0x665ee8]
add esp, 0x10
add esi, eax
jmp 0x555744
add ecx, edi
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x1c]
fdivr qword [esp + 0x30]
add esi, eax
mov eax, dword [esp + 0x20]
movsx ecx, si
add ecx, edi
lea edx, [esp + 0x30]
push ecx
push edx
fadd dword [ebx + 0x14]
fstp dword [eax - 0x28]
call dword [sym.imp.TGear.dll_BufToDouble]
fld dword [esp + 0x24]
fdivr qword [esp + 0x38]
add esp, 0x10
add esi, eax
fadd dword [ebx + 0x14]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x28]
movsx ecx, si
fstp dword [eax]
add ecx, edi
push ecx
push edx
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x30]
add esi, eax
call fcn.00645030
mov ecx, dword [esp + 0x20]
movsx edx, si
mov dword [ecx - 0x14], eax
add edx, edi
lea eax, [esp + 0x30]
push edx
push eax
call dword [sym.imp.TGear.dll_BufToDouble]
fld qword [esp + 0x38]
add esp, 0x10
add esi, eax
call fcn.00645030
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x1c]
add ecx, 4
dec eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
jne 0x5556a3
jmp 0x5557c4
lea eax, [ebx + 0x70]
mov ecx, 2
mov dword [eax - 0x28], edx
mov dword [eax], edx
mov dword [eax - 0x14], edx
mov dword [eax + 0x14], edx
add eax, 4
dec ecx
jne 0x5557b3
movsx ecx, si
add ecx, edi
push 2
lea edx, [ebx + 0x8c]
push ecx
push edx
call dword [fcn.0065f1b0]
mov eax, dword [ebp + 0x18]
add esp, 0xc
add esi, 2
test eax, eax
je 0x555819
movsx eax, si
add eax, edi
push 4
lea ecx, [ebx + 0x8e]
push eax
push ecx
call dword [fcn.0065f1b0]
add esi, 4
push 4
movsx edx, si
add edx, edi
add ebx, 0x92
push edx
push ebx
call dword [fcn.0065f1b0]
add esp, 0x18
add esi, 4
mov eax, dword [ebp + 0x10]
pop edi
add word [eax], si
pop esi
pop ebx
mov esp, ebp
pop ebp
ret