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

Disassembly:
sub esp, 0x54
push ebx
push esi
push edi
push ebp
fld qword [0x574580]
mov esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x90]
mov eax, dword [esp + 0x68]
fstp qword [esi]
mov eax, dword [eax]
mov ebp, 0x18
fld qword [0x574580]
mov edx, dword [esp + 0x6c]
lea ebp, [ebp + eax*8]
fstp qword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x18], ebp
fld qword [0x574580]
mov ebp, edx
mov ebx, 0xfffffffc
fstp qword [edi]
add ebp, 3
mov dword [esp + 0x14], edx
fld qword [0x574580]
fstp qword [esi + 8]
fld qword [0x574580]
fstp qword [ecx + 8]
fld qword [0x574580]
fstp qword [edi + 8]
fld qword [0x574580]
fstp qword [esi + 0x10]
fld qword [0x574580]
fstp qword [ecx + 0x10]
fld qword [0x574580]
fstp qword [edi + 0x10]
imul ebp, dword [esp + 0x18]
fld qword [0x574580]
mov dword [esp + 0x1c], ebp
mov ebp, eax
fstp qword [esi + 0x18]
add ebp, 3
sub ebx, dword [esp + 0x14]
fld qword [0x574580]
fstp qword [ecx + 0x18]
fld qword [0x574580]
fstp qword [edi + 0x18]
fld qword [0x574580]
imul ebx, ebp
mov ebp, eax
fstp qword [esi + 0x20]
shl ebx, 3
fld qword [0x574580]
sub ebx, 8
dec ebp
fstp qword [ecx + 0x20]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
fld qword [0x574580]
mov ebx, dword [esp + 0x70]
mov ebp, edx
fstp qword [edi + 0x20]
mov ebx, dword [ebx]
dec ebp
fld qword [0x574580]
dec ebx
mov dword [esp + 0x28], ebp
fstp qword [esi + 0x28]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
fld qword [0x574580]
xor ebx, ebx
fstp qword [ecx + 0x28]
cmp dword [esp + 0x2c], 0
fld qword [0x574580]
setle bl
fstp qword [edi + 0x28]
mov dword [esp + 0x34], ebx
test ebx, ebx
mov ebx, dword [esp + 0x1c]
jne 0x410d5a
mov edx, dword [esp + 0x80]
mov dword [esp + 0x38], ebx
sub edx, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
lea edx, [edx + eax*8]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x84]
sub edx, dword [esp + 0x20]
mov dword [esp + 0x44], edx
lea edx, [edx + eax*8]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x20]
shl eax, 3
mov dword [esp + 0x4c], edx
add eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
xor eax, eax
cmp ebp, 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 0x410d3d
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 + 8]
add ebp, eax
add eax, dword [esp + 0x10]
mov dword [esp + 0x58], ebx
cmp dword [esp + 0x50], 0
jne 0x410c7e
fld qword [ecx]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x58]
fadd qword [edx]
fstp st(1)
fld qword [eax]
fadd qword [edx + 8]
mov edx, dword [esp + 0x8c]
fstp st(2)
fld qword [ecx]
fmul qword [ebx]
fadd qword [edx]
fstp st(3)
fld qword [eax]
fmul qword [esi]
fadd qword [edx + 8]
mov edx, dword [esp + 0x90]
fstp st(4)
fld qword [ecx]
fmul qword [edi]
fadd qword [edx]
fstp st(5)
fld qword [eax]
fmul qword [ebp]
fadd qword [edx + 8]
mov edx, dword [esp + 0x18]
add ebx, edx
add esi, edx
add edi, edx
add ecx, edx
fstp st(6)
fadd qword [ecx]
add ebp, edx
add eax, edx
mov dword [esp + 0x58], ebx
fxch st(1)
fadd qword [eax]
fxch st(1)
fld qword [ecx]
fmul qword [ebx]
add ebx, edx
mov dword [esp + 0x58], ebx
faddp st(3)
fld qword [eax]
fmul qword [esi]
add esi, edx
faddp st(4)
fld qword [ecx]
fmul qword [edi]
add edi, edx
add ecx, edx
faddp st(5)
fld qword [eax]
fmul qword [ebp]
add ebp, edx
add eax, edx
faddp st(6)
fadd qword [ecx]
fxch st(1)
fadd qword [eax]
fxch st(1)
fld qword [ecx]
fmul qword [ebx]
add ebx, edx
mov dword [esp + 0x58], ebx
faddp st(3)
fld qword [eax]
fmul qword [esi]
add esi, edx
faddp st(4)
fld qword [ecx]
fmul qword [edi]
add edi, edx
add ecx, edx
faddp st(5)
fld qword [eax]
fmul qword [ebp]
add ebp, edx
add eax, edx
faddp st(6)
fadd qword [ecx]
fxch st(1)
fadd qword [eax]
fxch st(1)
fld qword [ecx]
fmul qword [ebx]
add ebx, edx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x88]
faddp st(3)
fld qword [eax]
fmul qword [esi]
add esi, edx
faddp st(4)
fld qword [ecx]
fmul qword [edi]
add edi, edx
add ecx, edx
faddp st(5)
fld qword [eax]
fmul qword [ebp]
add ebp, edx
add eax, edx
mov edx, dword [esp + 0x88]
faddp st(6)
fld st(0)
fadd qword [ecx]
fstp qword [edx]
mov edx, dword [esp + 0x8c]
fld st(1)
fadd qword [eax]
fstp qword [ebx + 8]
mov ebx, dword [esp + 0x58]
fld qword [ecx]
fmul qword [ebx]
mov ebx, dword [esp + 0x8c]
fadd st(3)
fstp qword [edx]
mov edx, dword [esp + 0x18]
fld qword [eax]
fmul qword [esi]
fadd st(4)
fstp qword [ebx + 8]
mov ebx, dword [esp + 0x90]
fld qword [ecx]
fmul qword [edi]
fadd st(5)
fstp qword [ebx]
fld qword [eax]
fmul qword [ebp]
fadd st(6)
fstp qword [ebx + 8]
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 0x410af5
test ebx, ebx
jle 0x410d3d
fld qword [ecx]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0x88]
fadd qword [ebx]
mov ebx, dword [esp + 0x88]
fstp qword [edx]
mov edx, dword [esp + 0x88]
fld qword [eax]
fadd qword [ebx + 8]
mov ebx, dword [esp + 0x58]
fstp qword [edx + 8]
mov edx, dword [esp + 0x8c]
fld qword [ecx]
fmul qword [ebx]
mov ebx, dword [esp + 0x8c]
fadd qword [edx]
mov edx, dword [esp + 0x8c]
fstp qword [ebx]
fld qword [eax]
fmul qword [esi]
fadd qword [ebx + 8]
mov ebx, dword [esp + 0x90]
fstp qword [edx + 8]
mov edx, dword [esp + 0x90]
fld qword [ecx]
fmul qword [edi]
fadd qword [ebx]
mov ebx, dword [esp + 0x90]
fstp qword [edx]
mov edx, dword [esp + 0x90]
fld qword [eax]
fmul qword [ebp]
fadd qword [ebx + 8]
mov ebx, dword [esp + 0x18]
add ebx, dword [esp + 0x58]
fstp qword [edx + 8]
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 0x410c7e
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 0x410aaa
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 0x411075
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 0x411043
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, 8
sub ebp, dword [esp + 0x20]
lea edi, [edi + edx + 8]
lea edx, [ebp + edx + 8]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x3c], edi
sub ebp, dword [esp + 0x20]
add ebp, dword [esp + 0x30]
add ebp, 8
sub eax, dword [esp + 0x20]
add eax, dword [esp + 0x14]
add eax, 8
sub ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x14]
add ebx, 8
cmp dword [esp + 0x34], 0
jne 0x410f8d
fld qword [ebp]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x3c]
lea ebp, [ebp + 0x28]
lea edx, [edx + 0x28]
fadd qword [esi + 0x10]
lea ebx, [ebx + 0x28]
lea eax, [eax + 0x28]
fstp st(1)
fld qword [ebx - 0x28]
fadd qword [esi + 0x18]
mov esi, dword [esp + 0x8c]
fstp st(2)
fld qword [ebp - 0x28]
fmul qword [edi]
fadd qword [esi + 0x10]
fstp st(3)
fld qword [ebx - 0x28]
fmul qword [ecx]
fadd qword [esi + 0x18]
mov esi, dword [esp + 0x90]
fstp st(4)
fld qword [ebp - 0x28]
fmul qword [edx - 0x28]
fadd qword [esi + 0x10]
fstp st(5)
fld qword [ebx - 0x28]
fmul qword [eax - 0x28]
fadd qword [esi + 0x18]
mov esi, dword [esp + 0x88]
fstp st(6)
fadd qword [ebp - 0x20]
fxch st(1)
fadd qword [ebx - 0x20]
fxch st(1)
fld qword [ebp - 0x20]
fmul qword [edi + 8]
faddp st(3)
fld qword [ebx - 0x20]
fmul qword [ecx + 8]
faddp st(4)
fld qword [ebp - 0x20]
fmul qword [edx - 0x20]
faddp st(5)
fld qword [ebx - 0x20]
fmul qword [eax - 0x20]
faddp st(6)
fadd qword [ebp - 0x18]
fxch st(1)
fadd qword [ebx - 0x18]
fxch st(1)
fld qword [ebp - 0x18]
fmul qword [edi + 0x10]
faddp st(3)
fld qword [ebx - 0x18]
fmul qword [ecx + 0x10]
faddp st(4)
fld qword [ebp - 0x18]
fmul qword [edx - 0x18]
faddp st(5)
fld qword [ebx - 0x18]
fmul qword [eax - 0x18]
faddp st(6)
fadd qword [ebp - 0x10]
fxch st(1)
fadd qword [ebx - 0x10]
fxch st(1)
fld qword [ebp - 0x10]
fmul qword [edi + 0x18]
mov edi, dword [esp + 0x8c]
faddp st(3)
fld qword [ebx - 0x10]
fmul qword [ecx + 0x18]
faddp st(4)
fld qword [ebp - 0x10]
fmul qword [edx - 0x10]
faddp st(5)
fld qword [ebx - 0x10]
fmul qword [eax - 0x10]
faddp st(6)
fld st(0)
fadd qword [ebp - 8]
fstp qword [esi + 0x10]
fld st(1)
fadd qword [ebx - 8]
fstp qword [esi + 0x18]
mov esi, dword [esp + 0x3c]
fld qword [ebp - 8]
fmul qword [esi + 0x20]
mov esi, dword [esp + 0x8c]
fadd st(3)
fstp qword [edi + 0x10]
mov edi, dword [esp + 0x38]
fld qword [ebx - 8]
sub edi, 5
fmul qword [ecx + 0x20]
add ecx, 0x28
mov dword [esp + 0x38], edi
cmp edi, 4
fadd st(4)
fstp qword [esi + 0x18]
mov esi, dword [esp + 0x90]
fld qword [ebp - 8]
fmul qword [edx - 8]
fadd st(5)
fstp qword [esi + 0x10]
fld qword [ebx - 8]
fmul qword [eax - 8]
fadd st(6)
fstp qword [esi + 0x18]
mov esi, dword [esp + 0x3c]
lea esi, [esi + 0x28]
mov dword [esp + 0x3c], esi
jg 0x410e2a
test edi, edi
jle 0x411043
fld qword [ebp]
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x88]
lea ebp, [ebp + 8]
lea ecx, [ecx + 8]
fadd qword [edi + 0x10]
mov edi, dword [esp + 0x88]
lea edx, [edx + 8]
lea ebx, [ebx + 8]
lea eax, [eax + 8]
fstp qword [esi + 0x10]
fld qword [ebx - 8]
fadd qword [esi + 0x18]
mov esi, dword [esp + 0x3c]
fstp qword [edi + 0x18]
mov edi, dword [esp + 0x8c]
fld qword [ebp - 8]
fmul qword [esi]
mov esi, dword [esp + 0x8c]
fadd qword [edi + 0x10]
mov edi, dword [esp + 0x8c]
fstp qword [esi + 0x10]
fld qword [ebx - 8]
fmul qword [ecx - 8]
fadd qword [esi + 0x18]
mov esi, dword [esp + 0x90]
fstp qword [edi + 0x18]
mov edi, dword [esp + 0x90]
fld qword [ebp - 8]
fmul qword [edx - 8]
fadd qword [esi + 0x10]
mov esi, dword [esp + 0x90]
fstp qword [edi + 0x10]
mov edi, dword [esp + 0x90]
fld qword [ebx - 8]
fmul qword [eax - 8]
fadd qword [esi + 0x18]
mov esi, dword [esp + 0x3c]
lea esi, [esi + 8]
fstp qword [edi + 0x18]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
dec edi
mov dword [esp + 0x38], edi
test edi, edi
jg 0x410f8d
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 0x410da0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x10], esi
test esi, esi
mov dword [esp + 0x14], 1
jle 0x411393
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 0x411361
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, 8
sub edx, dword [esp + 0x20]
lea esi, [esi + edi + 8]
lea edi, [edx + edi + 8]
mov edx, dword [esp + 0x7c]
sub edx, dword [esp + 0x20]
add edx, dword [esp + 0x28]
add edx, 8
sub ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x1c]
add ebx, 8
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ebx
add ecx, dword [esp + 0x1c]
add ecx, 8
cmp dword [esp + 0x2c], 0
jne 0x4112ac
fld qword [edx]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x34]
lea ebp, [ebp + 0x28]
lea esi, [esi + 0x28]
fadd qword [eax + 0x20]
lea edx, [edx + 0x28]
lea edi, [edi + 0x28]
lea ecx, [ecx + 0x28]
fstp st(1)
fld qword [ecx - 0x28]
fadd qword [eax + 0x28]
mov eax, dword [esp + 0x8c]
fstp st(2)
fld qword [edx - 0x28]
fmul qword [esi - 0x28]
fadd qword [eax + 0x20]
fstp st(3)
fld qword [ecx - 0x28]
fmul qword [ebp - 0x28]
fadd qword [eax + 0x28]
mov eax, dword [esp + 0x90]
fstp st(4)
fld qword [edx - 0x28]
fmul qword [edi - 0x28]
fadd qword [eax + 0x20]
fstp st(5)
fld qword [ecx - 0x28]
fmul qword [ebx]
fadd qword [eax + 0x28]
mov eax, dword [esp + 0x88]
fstp st(6)
fadd qword [edx - 0x20]
fxch st(1)
fadd qword [ecx - 0x20]
fxch st(1)
fld qword [edx - 0x20]
fmul qword [esi - 0x20]
faddp st(3)
fld qword [ecx - 0x20]
fmul qword [ebp - 0x20]
faddp st(4)
fld qword [edx - 0x20]
fmul qword [edi - 0x20]
faddp st(5)
fld qword [ecx - 0x20]
fmul qword [ebx + 8]
faddp st(6)
fadd qword [edx - 0x18]
fxch st(1)
fadd qword [ecx - 0x18]
fxch st(1)
fld qword [edx - 0x18]
fmul qword [esi - 0x18]
faddp st(3)
fld qword [ecx - 0x18]
fmul qword [ebp - 0x18]
faddp st(4)
fld qword [edx - 0x18]
fmul qword [edi - 0x18]
faddp st(5)
fld qword [ecx - 0x18]
fmul qword [ebx + 0x10]
faddp st(6)
fadd qword [edx - 0x10]
fxch st(1)
fadd qword [ecx - 0x10]
fxch st(1)
fld qword [edx - 0x10]
fmul qword [esi - 0x10]
faddp st(3)
fld qword [ecx - 0x10]
fmul qword [ebp - 0x10]
faddp st(4)
fld qword [edx - 0x10]
fmul qword [edi - 0x10]
faddp st(5)
fld qword [ecx - 0x10]
fmul qword [ebx + 0x18]
mov ebx, dword [esp + 0x88]
faddp st(6)
fld st(0)
fadd qword [edx - 8]
fstp qword [eax + 0x20]
mov eax, dword [esp + 0x90]
fld st(1)
fadd qword [ecx - 8]
fstp qword [ebx + 0x28]
mov ebx, dword [esp + 0x8c]
fld qword [edx - 8]
fmul qword [esi - 8]
fadd st(3)
fstp qword [ebx + 0x20]
fld qword [ecx - 8]
fmul qword [ebp - 8]
fadd st(4)
fstp qword [ebx + 0x28]
mov ebx, dword [esp + 0x90]
fld qword [edx - 8]
fmul qword [edi - 8]
fadd st(5)
fstp qword [ebx + 0x20]
mov ebx, dword [esp + 0x34]
fld qword [ecx - 8]
fmul qword [ebx + 0x20]
lea ebx, [ebx + 0x28]
mov dword [esp + 0x34], ebx
fadd st(6)
fstp qword [eax + 0x28]
mov eax, dword [esp + 0x30]
sub eax, 5
mov dword [esp + 0x30], eax
cmp eax, 4
jg 0x411142
test eax, eax
jle 0x411361
fld qword [edx]
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x88]
lea ebp, [ebp + 8]
lea esi, [esi + 8]
fadd qword [eax + 0x20]
mov eax, dword [esp + 0x88]
lea edx, [edx + 8]
lea edi, [edi + 8]
lea ecx, [ecx + 8]
fstp qword [ebx + 0x20]
fld qword [ecx - 8]
fadd qword [ebx + 0x28]
mov ebx, dword [esp + 0x8c]
fstp qword [eax + 0x28]
mov eax, dword [esp + 0x8c]
fld qword [edx - 8]
fmul qword [esi - 8]
fadd qword [ebx + 0x20]
mov ebx, dword [esp + 0x8c]
fstp qword [eax + 0x20]
mov eax, dword [esp + 0x8c]
fld qword [ecx - 8]
fmul qword [ebp - 8]
fadd qword [ebx + 0x28]
mov ebx, dword [esp + 0x90]
fstp qword [eax + 0x28]
mov eax, dword [esp + 0x90]
fld qword [edx - 8]
fmul qword [edi - 8]
fadd qword [ebx + 0x20]
mov ebx, dword [esp + 0x34]
fstp qword [eax + 0x20]
fld qword [ecx - 8]
fmul qword [ebx]
mov ebx, dword [esp + 0x90]
fadd qword [eax + 0x28]
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x30], eax
test eax, eax
fstp qword [ebx + 0x28]
mov ebx, dword [esp + 0x34]
lea ebx, [ebx + 8]
mov dword [esp + 0x34], ebx
jg 0x4112ac
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 0x4110ba
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