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

Disassembly:
sub esp, 0x54
push ebx
push esi
push edi
push ebp
mov eax, dword [esp + 0x68]
mov ebp, 0xc
mov edx, dword [esp + 0x6c]
mov ebx, 0xfffffffc
mov eax, dword [eax]
mov esi, dword [esp + 0x88]
mov edx, dword [edx]
mov ecx, dword [esp + 0x8c]
lea ebp, [ebp + eax*4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
mov ebp, edx
add ebp, 3
mov edi, dword [esp + 0x90]
imul ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov ebp, eax
add ebp, 3
sub ebx, dword [esp + 0x14]
imul ebx, ebp
mov ebp, eax
shl ebx, 2
sub ebx, 4
dec ebp
mov dword [esp + 0x24], ebp
mov ebp, edx
dec ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebp
mov ebp, dword [0x5714d0]
mov dword [esi], ebp
mov ebp, dword [0x5714d0]
mov dword [ecx], ebp
mov ebp, dword [0x5714d0]
mov dword [edi], ebp
mov ebp, dword [0x5714d0]
mov dword [esi + 4], ebp
mov ebp, dword [0x5714d0]
mov dword [ecx + 4], ebp
mov ebp, dword [0x5714d0]
mov dword [edi + 4], ebp
mov ebp, dword [0x5714d0]
mov dword [esi + 8], ebp
mov ebp, dword [0x5714d0]
mov dword [ecx + 8], ebp
mov ebp, dword [0x5714d0]
mov dword [edi + 8], ebp
mov ebp, dword [0x5714d0]
mov dword [esi + 0xc], ebp
mov ebp, dword [0x5714d0]
mov dword [ecx + 0xc], ebp
mov ebp, dword [0x5714d0]
mov ebx, dword [esp + 0x70]
mov dword [edi + 0xc], ebp
mov ebp, dword [0x5714d0]
mov ebx, dword [ebx]
mov dword [esi + 0x10], ebp
dec ebx
mov ebp, dword [0x5714d0]
mov dword [ecx + 0x10], ebp
mov dword [esp + 0x2c], ebx
mov ebp, dword [0x5714d0]
mov dword [esp + 0x30], ebx
xor ebx, ebx
mov dword [edi + 0x10], ebp
mov ebp, dword [0x5714d0]
cmp dword [esp + 0x2c], 0
mov dword [esi + 0x14], ebp
mov ebp, dword [0x5714d0]
setle bl
mov dword [ecx + 0x14], ebp
mov ebp, dword [0x5714d0]
mov dword [edi + 0x14], ebp
mov dword [esp + 0x34], ebx
test ebx, ebx
jne 0x4108e2
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x1c]
sub edx, dword [esp + 0x20]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edx
lea edx, [edx + eax*4]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x84]
sub edx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
lea edx, [edx + eax*4]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x20]
shl eax, 2
mov dword [esp + 0x4c], edx
add eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
xor eax, eax
cmp dword [esp + 0x28], 4
setle al
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x54], eax
test eax, eax
mov eax, dword [esp + 0x38]
jle 0x4108c5
add eax, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
add ebx, eax
add esi, eax
mov ebp, dword [esp + 0x48]
add edi, eax
lea ecx, [ecx + eax + 4]
add ebp, eax
add eax, dword [esp + 0x10]
mov dword [esp + 0x58], ebx
cmp dword [esp + 0x50], 0
jne 0x410806
fld dword [ecx]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x58]
fadd dword [edx]
fstp st(1)
fld dword [eax]
fadd dword [edx + 4]
mov edx, dword [esp + 0x8c]
fstp st(2)
fld dword [ecx]
fmul dword [ebx]
fadd dword [edx]
fstp st(3)
fld dword [eax]
fmul dword [esi]
fadd dword [edx + 4]
mov edx, dword [esp + 0x90]
fstp st(4)
fld dword [ecx]
fmul dword [edi]
fadd dword [edx]
fstp st(5)
fld dword [eax]
fmul dword [ebp]
fadd dword [edx + 4]
mov edx, dword [esp + 0x18]
add ebx, edx
add esi, edx
add edi, edx
add ecx, edx
fstp st(6)
fadd dword [ecx]
add ebp, edx
add eax, edx
mov dword [esp + 0x58], ebx
fxch st(1)
fadd dword [eax]
fxch st(1)
fld dword [ecx]
fmul dword [ebx]
add ebx, edx
mov dword [esp + 0x58], ebx
faddp st(3)
fld dword [eax]
fmul dword [esi]
add esi, edx
faddp st(4)
fld dword [ecx]
fmul dword [edi]
add edi, edx
add ecx, edx
faddp st(5)
fld dword [eax]
fmul dword [ebp]
add ebp, edx
add eax, edx
faddp st(6)
fadd dword [ecx]
fxch st(1)
fadd dword [eax]
fxch st(1)
fld dword [ecx]
fmul dword [ebx]
add ebx, edx
mov dword [esp + 0x58], ebx
faddp st(3)
fld dword [eax]
fmul dword [esi]
add esi, edx
faddp st(4)
fld dword [ecx]
fmul dword [edi]
add edi, edx
add ecx, edx
faddp st(5)
fld dword [eax]
fmul dword [ebp]
add ebp, edx
add eax, edx
faddp st(6)
fadd dword [ecx]
fxch st(1)
fadd dword [eax]
fxch st(1)
fld dword [ecx]
fmul dword [ebx]
add ebx, edx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x88]
faddp st(3)
fld dword [eax]
fmul dword [esi]
add esi, edx
faddp st(4)
fld dword [ecx]
fmul dword [edi]
add edi, edx
add ecx, edx
faddp st(5)
fld dword [eax]
fmul dword [ebp]
add ebp, edx
add eax, edx
mov edx, dword [esp + 0x88]
faddp st(6)
fld st(0)
fadd dword [ecx]
fstp dword [edx]
mov edx, dword [esp + 0x8c]
fld st(1)
fadd dword [eax]
fstp dword [ebx + 4]
mov ebx, dword [esp + 0x58]
fld dword [ecx]
fmul dword [ebx]
mov ebx, dword [esp + 0x8c]
fadd st(3)
fstp dword [edx]
mov edx, dword [esp + 0x18]
fld dword [eax]
fmul dword [esi]
fadd st(4)
fstp dword [ebx + 4]
mov ebx, dword [esp + 0x90]
fld dword [ecx]
fmul dword [edi]
fadd st(5)
fstp dword [ebx]
fld dword [eax]
fmul dword [ebp]
fadd st(6)
fstp dword [ebx + 4]
mov ebx, dword [esp + 0x18]
add ebx, dword [esp + 0x58]
add esi, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x18]
add edi, ebx
add ecx, edx
add ebp, ebx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x54]
add eax, edx
sub ebx, 5
mov dword [esp + 0x54], ebx
cmp ebx, 4
jg 0x41067d
test ebx, ebx
jle 0x4108c5
fld dword [ecx]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x88]
fadd dword [ebx]
mov ebx, dword [esp + 0x88]
fstp dword [edx]
mov edx, dword [esp + 0x88]
fld dword [eax]
fadd dword [ebx + 4]
mov ebx, dword [esp + 0x58]
fstp dword [edx + 4]
mov edx, dword [esp + 0x8c]
fld dword [ecx]
fmul dword [ebx]
mov ebx, dword [esp + 0x8c]
fadd dword [edx]
mov edx, dword [esp + 0x8c]
fstp dword [ebx]
fld dword [eax]
fmul dword [esi]
fadd dword [ebx + 4]
mov ebx, dword [esp + 0x90]
fstp dword [edx + 4]
mov edx, dword [esp + 0x90]
fld dword [ecx]
fmul dword [edi]
fadd dword [ebx]
mov ebx, dword [esp + 0x90]
fstp dword [edx]
mov edx, dword [esp + 0x90]
fld dword [eax]
fmul dword [ebp]
fadd dword [ebx + 4]
mov ebx, dword [esp + 0x18]
add ebx, dword [esp + 0x58]
fstp dword [edx + 4]
mov dword [esp + 0x58], ebx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
add esi, edx
add edi, ebx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x18]
add ecx, edx
add ebp, ebx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x54]
add eax, edx
dec ebx
mov dword [esp + 0x54], ebx
test ebx, ebx
jg 0x410806
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
dec esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], esi
test esi, esi
jg 0x410632
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x34], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], 1
jne 0x410bfd
mov ebx, dword [esp + 0x14]
add ebp, dword [esp + 0x1c]
imul ebx, dword [esp + 0x18]
mov dword [esp + 0x30], ebp
add ebx, dword [esp + 0x1c]
xor edx, edx
cmp dword [esp + 0x24], 4
mov dword [esp + 0x14], ebx
setle dl
mov dword [esp + 0x34], edx
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], edi
test edi, edi
mov edi, dword [esp + 0x80]
jle 0x410bcb
sub edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x80]
imul edx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x78]
add ecx, dword [esp + 0x14]
add ecx, 4
sub ebp, dword [esp + 0x20]
lea edi, [edi + edx + 4]
lea edx, [ebp + edx + 4]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x3c], edi
sub ebp, dword [esp + 0x20]
add ebp, dword [esp + 0x30]
add ebp, 4
sub eax, dword [esp + 0x20]
add eax, dword [esp + 0x14]
add eax, 4
sub ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x14]
add ebx, 4
cmp dword [esp + 0x34], 0
jne 0x410b15
fld dword [ebp]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x3c]
lea ebp, [ebp + 0x14]
lea edx, [edx + 0x14]
fadd dword [esi + 8]
lea ebx, [ebx + 0x14]
lea eax, [eax + 0x14]
fstp st(1)
fld dword [ebx - 0x14]
fadd dword [esi + 0xc]
mov esi, dword [esp + 0x8c]
fstp st(2)
fld dword [ebp - 0x14]
fmul dword [edi]
fadd dword [esi + 8]
fstp st(3)
fld dword [ebx - 0x14]
fmul dword [ecx]
fadd dword [esi + 0xc]
mov esi, dword [esp + 0x90]
fstp st(4)
fld dword [ebp - 0x14]
fmul dword [edx - 0x14]
fadd dword [esi + 8]
fstp st(5)
fld dword [ebx - 0x14]
fmul dword [eax - 0x14]
fadd dword [esi + 0xc]
mov esi, dword [esp + 0x88]
fstp st(6)
fadd dword [ebp - 0x10]
fxch st(1)
fadd dword [ebx - 0x10]
fxch st(1)
fld dword [ebp - 0x10]
fmul dword [edi + 4]
faddp st(3)
fld dword [ebx - 0x10]
fmul dword [ecx + 4]
faddp st(4)
fld dword [ebp - 0x10]
fmul dword [edx - 0x10]
faddp st(5)
fld dword [ebx - 0x10]
fmul dword [eax - 0x10]
faddp st(6)
fadd dword [ebp - 0xc]
fxch st(1)
fadd dword [ebx - 0xc]
fxch st(1)
fld dword [ebp - 0xc]
fmul dword [edi + 8]
faddp st(3)
fld dword [ebx - 0xc]
fmul dword [ecx + 8]
faddp st(4)
fld dword [ebp - 0xc]
fmul dword [edx - 0xc]
faddp st(5)
fld dword [ebx - 0xc]
fmul dword [eax - 0xc]
faddp st(6)
fadd dword [ebp - 8]
fxch st(1)
fadd dword [ebx - 8]
fxch st(1)
fld dword [ebp - 8]
fmul dword [edi + 0xc]
mov edi, dword [esp + 0x8c]
faddp st(3)
fld dword [ebx - 8]
fmul dword [ecx + 0xc]
faddp st(4)
fld dword [ebp - 8]
fmul dword [edx - 8]
faddp st(5)
fld dword [ebx - 8]
fmul dword [eax - 8]
faddp st(6)
fld st(0)
fadd dword [ebp - 4]
fstp dword [esi + 8]
fld st(1)
fadd dword [ebx - 4]
fstp dword [esi + 0xc]
mov esi, dword [esp + 0x3c]
fld dword [ebp - 4]
fmul dword [esi + 0x10]
mov esi, dword [esp + 0x8c]
fadd st(3)
fstp dword [edi + 8]
mov edi, dword [esp + 0x38]
fld dword [ebx - 4]
sub edi, 5
fmul dword [ecx + 0x10]
add ecx, 0x14
mov dword [esp + 0x38], edi
cmp edi, 4
fadd st(4)
fstp dword [esi + 0xc]
mov esi, dword [esp + 0x90]
fld dword [ebp - 4]
fmul dword [edx - 4]
fadd st(5)
fstp dword [esi + 8]
fld dword [ebx - 4]
fmul dword [eax - 4]
fadd st(6)
fstp dword [esi + 0xc]
mov esi, dword [esp + 0x3c]
lea esi, [esi + 0x14]
mov dword [esp + 0x3c], esi
jg 0x4109b2
test edi, edi
jle 0x410bcb
fld dword [ebp]
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x88]
lea ebp, [ebp + 4]
lea ecx, [ecx + 4]
fadd dword [edi + 8]
mov edi, dword [esp + 0x88]
lea edx, [edx + 4]
lea ebx, [ebx + 4]
lea eax, [eax + 4]
fstp dword [esi + 8]
fld dword [ebx - 4]
fadd dword [esi + 0xc]
mov esi, dword [esp + 0x3c]
fstp dword [edi + 0xc]
mov edi, dword [esp + 0x8c]
fld dword [ebp - 4]
fmul dword [esi]
mov esi, dword [esp + 0x8c]
fadd dword [edi + 8]
mov edi, dword [esp + 0x8c]
fstp dword [esi + 8]
fld dword [ebx - 4]
fmul dword [ecx - 4]
fadd dword [esi + 0xc]
mov esi, dword [esp + 0x90]
fstp dword [edi + 0xc]
mov edi, dword [esp + 0x90]
fld dword [ebp - 4]
fmul dword [edx - 4]
fadd dword [esi + 8]
mov esi, dword [esp + 0x90]
fstp dword [edi + 8]
mov edi, dword [esp + 0x90]
fld dword [ebx - 4]
fmul dword [eax - 4]
fadd dword [esi + 0xc]
mov esi, dword [esp + 0x3c]
lea esi, [esi + 4]
fstp dword [edi + 0xc]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
dec edi
mov dword [esp + 0x38], edi
test edi, edi
jg 0x410b15
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
inc edi
mov edx, dword [esp + 0x1c]
add ebx, dword [esp + 0x30]
add edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
dec ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebp
test ebp, ebp
jg 0x410928
mov esi, dword [esp + 0x28]
mov dword [esp + 0x10], esi
test esi, esi
mov dword [esp + 0x14], 1
jle 0x410f1b
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
add edx, dword [esp + 0x1c]
mov ecx, dword [ecx]
imul ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
add ecx, dword [esp + 0x18]
xor eax, eax
cmp dword [esp + 0x24], 4
mov dword [esp + 0x1c], ecx
setle al
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x30], esi
test esi, esi
mov esi, dword [esp + 0x80]
jle 0x410ee9
sub esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x80]
imul edi, dword [esp + 0x18]
sub ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
add ebp, dword [esp + 0x1c]
add ebp, 4
sub edx, dword [esp + 0x20]
lea esi, [esi + edi + 4]
lea edi, [edx + edi + 4]
mov edx, dword [esp + 0x7c]
sub edx, dword [esp + 0x20]
add edx, dword [esp + 0x28]
add edx, 4
sub ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x1c]
add ebx, 4
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ebx
add ecx, dword [esp + 0x1c]
add ecx, 4
cmp dword [esp + 0x2c], 0
jne 0x410e34
fld dword [edx]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x34]
lea ebp, [ebp + 0x14]
lea esi, [esi + 0x14]
fadd dword [eax + 0x10]
lea edx, [edx + 0x14]
lea edi, [edi + 0x14]
lea ecx, [ecx + 0x14]
fstp st(1)
fld dword [ecx - 0x14]
fadd dword [eax + 0x14]
mov eax, dword [esp + 0x8c]
fstp st(2)
fld dword [edx - 0x14]
fmul dword [esi - 0x14]
fadd dword [eax + 0x10]
fstp st(3)
fld dword [ecx - 0x14]
fmul dword [ebp - 0x14]
fadd dword [eax + 0x14]
mov eax, dword [esp + 0x90]
fstp st(4)
fld dword [edx - 0x14]
fmul dword [edi - 0x14]
fadd dword [eax + 0x10]
fstp st(5)
fld dword [ecx - 0x14]
fmul dword [ebx]
fadd dword [eax + 0x14]
mov eax, dword [esp + 0x88]
fstp st(6)
fadd dword [edx - 0x10]
fxch st(1)
fadd dword [ecx - 0x10]
fxch st(1)
fld dword [edx - 0x10]
fmul dword [esi - 0x10]
faddp st(3)
fld dword [ecx - 0x10]
fmul dword [ebp - 0x10]
faddp st(4)
fld dword [edx - 0x10]
fmul dword [edi - 0x10]
faddp st(5)
fld dword [ecx - 0x10]
fmul dword [ebx + 4]
faddp st(6)
fadd dword [edx - 0xc]
fxch st(1)
fadd dword [ecx - 0xc]
fxch st(1)
fld dword [edx - 0xc]
fmul dword [esi - 0xc]
faddp st(3)
fld dword [ecx - 0xc]
fmul dword [ebp - 0xc]
faddp st(4)
fld dword [edx - 0xc]
fmul dword [edi - 0xc]
faddp st(5)
fld dword [ecx - 0xc]
fmul dword [ebx + 8]
faddp st(6)
fadd dword [edx - 8]
fxch st(1)
fadd dword [ecx - 8]
fxch st(1)
fld dword [edx - 8]
fmul dword [esi - 8]
faddp st(3)
fld dword [ecx - 8]
fmul dword [ebp - 8]
faddp st(4)
fld dword [edx - 8]
fmul dword [edi - 8]
faddp st(5)
fld dword [ecx - 8]
fmul dword [ebx + 0xc]
mov ebx, dword [esp + 0x88]
faddp st(6)
fld st(0)
fadd dword [edx - 4]
fstp dword [eax + 0x10]
mov eax, dword [esp + 0x90]
fld st(1)
fadd dword [ecx - 4]
fstp dword [ebx + 0x14]
mov ebx, dword [esp + 0x8c]
fld dword [edx - 4]
fmul dword [esi - 4]
fadd st(3)
fstp dword [ebx + 0x10]
fld dword [ecx - 4]
fmul dword [ebp - 4]
fadd st(4)
fstp dword [ebx + 0x14]
mov ebx, dword [esp + 0x90]
fld dword [edx - 4]
fmul dword [edi - 4]
fadd st(5)
fstp dword [ebx + 0x10]
mov ebx, dword [esp + 0x34]
fld dword [ecx - 4]
fmul dword [ebx + 0x10]
lea ebx, [ebx + 0x14]
mov dword [esp + 0x34], ebx
fadd st(6)
fstp dword [eax + 0x14]
mov eax, dword [esp + 0x30]
sub eax, 5
mov dword [esp + 0x30], eax
cmp eax, 4
jg 0x410cca
test eax, eax
jle 0x410ee9
fld dword [edx]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x88]
lea ebp, [ebp + 4]
lea esi, [esi + 4]
fadd dword [eax + 0x10]
mov eax, dword [esp + 0x88]
lea edx, [edx + 4]
lea edi, [edi + 4]
lea ecx, [ecx + 4]
fstp dword [ebx + 0x10]
fld dword [ecx - 4]
fadd dword [ebx + 0x14]
mov ebx, dword [esp + 0x8c]
fstp dword [eax + 0x14]
mov eax, dword [esp + 0x8c]
fld dword [edx - 4]
fmul dword [esi - 4]
fadd dword [ebx + 0x10]
mov ebx, dword [esp + 0x8c]
fstp dword [eax + 0x10]
mov eax, dword [esp + 0x8c]
fld dword [ecx - 4]
fmul dword [ebp - 4]
fadd dword [ebx + 0x14]
mov ebx, dword [esp + 0x90]
fstp dword [eax + 0x14]
mov eax, dword [esp + 0x90]
fld dword [edx - 4]
fmul dword [edi - 4]
fadd dword [ebx + 0x10]
mov ebx, dword [esp + 0x34]
fstp dword [eax + 0x10]
fld dword [ecx - 4]
fmul dword [ebx]
mov ebx, dword [esp + 0x90]
fadd dword [eax + 0x14]
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x30], eax
test eax, eax
fstp dword [ebx + 0x14]
mov ebx, dword [esp + 0x34]
lea ebx, [ebx + 4]
mov dword [esp + 0x34], ebx
jg 0x410e34
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
inc eax
mov edx, dword [esp + 0x18]
add esi, dword [esp + 0x28]
add edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x14], eax
dec ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ebp
test ebp, ebp
jg 0x410c42
ffree st(5)
ffree st(4)
ffree st(3)
ffree st(2)
ffree st(1)
ffree st(0)
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x54
ret 0x2c