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

Disassembly:
mov eax, 0x5164
call fcn.00660af0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5178]
push edi
mov ebx, ecx
push ebx
call fcn.00430aa0
mov cl, 1
mov eax, ebx
call fcn.00430cc0
mov eax, dword [esi]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
xor edi, edi
add ecx, edx
mov dword [esp + 0x1c], edi
test ecx, ecx
jle 0x56fa9a
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
jmp 0x56f864
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esi + 0x28]
mov eax, 0x42df9bb1
imul ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x56f888
call fcn.006441b7
mov eax, dword [esi + 0x28]
add eax, dword [esp + 0x18]
mov esi, dword [esp + 0x517c]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
mov dword [esp + 0x34], eax
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jb 0x56f8ba
call fcn.006441b7
mov esi, dword [esi + 0x10]
add esi, dword [esp + 0x10]
cmp byte [esi + 0xd4], 0
mov dword [esp + 0x28], esi
je 0x56fa5b
mov dword [esp + 0x30], 0
lea ebx, [ebx]
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x34], 0
je 0x56fa1f
mov edx, dword [eax + 0x48]
sub edx, dword [eax + 0x44]
mov dword [esp + 0x3c], 0
test edx, 0xfffffffc
jle 0x56fa49
jmp 0x56f910
mov eax, dword [esp + 0x28]
mov edi, dword [eax + 0x48]
test edi, edi
je 0x56f9ff
cmp dword [esp + 0x30], 0
mov ebp, dword [esp + 0x5178]
sete byte [esp + 0x20]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
push ecx
lea edx, [edi + 0x128]
push edx
push eax
mov eax, dword [esp + 0x5188]
push ebx
push ebp
call fcn.0056f190
cmp byte [ebp + 0xf58], 0
je 0x56f9f4
xor ecx, ecx
mov eax, ebx
call fcn.00430ca0
fldz
fst qword [esp + 0x78]
lea esi, [edi + 0xa8]
fstp qword [esp + 0x80]
call fcn.0057e720
mov ecx, eax
lea eax, [esp + 0x78]
lea esi, [esp + 0x68]
call fcn.00560b40
mov eax, 0x88ba80
mov ecx, ebx
call fcn.00430c20
fld qword [esp + 0x70]
fld qword [0x82ded8]
push 3
fsub st(1), st(0)
push 3
fxch st(1)
call fcn.0076f850
fsubr qword [esp + 0x70]
push eax
call fcn.0076f850
mov ecx, ebx
call fcn.00430dc0
mov eax, 0x88ba50
mov ecx, ebx
call fcn.00430c20
fld qword [esp + 0x70]
fld qword [0x82dc10]
push 3
fsub st(1), st(0)
push 3
fxch st(1)
call fcn.0076f850
fsubr qword [esp + 0x70]
push eax
call fcn.0076f850
mov ecx, ebx
call fcn.00430dc0
mov edi, dword [edi + 4]
test edi, edi
jne 0x56f930
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x48]
sub edx, dword [ecx + 0x44]
mov eax, dword [esp + 0x3c]
inc eax
sar edx, 2
cmp eax, edx
mov dword [esp + 0x3c], eax
jl 0x56f910
jmp 0x56fa49
cmp dword [esp + 0x30], 0
sete al
movzx ecx, al
mov eax, dword [esp + 0x28]
push ecx
lea edx, [eax + 0x70]
push edx
push eax
mov eax, dword [esp + 0x5184]
push ebx
push eax
mov eax, dword [esp + 0x5190]
call fcn.0056f190
mov eax, dword [esp + 0x30]
inc eax
cmp eax, 2
mov dword [esp + 0x30], eax
jl 0x56f8e0
mov eax, dword [esp + 0x517c]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
mov esi, dword [esp + 0x1c]
add dword [esp + 0x18], 0x7a8
add dword [esp + 0x10], 0xd8
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
inc esi
add ecx, edx
cmp esi, ecx
mov dword [esp + 0x1c], esi
jl 0x56f860
xor ecx, ecx
mov eax, ebx
call fcn.00430ca0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x5c]
sub ecx, dword [eax + 0x58]
mov eax, 0x30c30c31
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x5700be
mov dword [esp + 0x28], 0
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x5c]
sub ecx, dword [esi + 0x58]
mov eax, 0x30c30c31
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x56faf8
call fcn.006441b7
mov ebp, dword [esi + 0x58]
add ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x5178]
fld dword [esi + 0xf04]
push ecx
lea edi, [ebp + 0x80]
fstp dword [esp]
call fcn.005617b0
fcomp qword [0x82e3b8]
mov byte [esp + 0x17], 1
fnstsw ax
test ah, 0x41
je 0x56fb32
mov byte [esp + 0x17], 0
cmp byte [esi + 0xf58], 0
jne 0x56fb46
cmp byte [esp + 0x17], 0
je 0x57008a
lea eax, [esp + 0x40]
mov edi, esi
call fcn.0057e350
fldz
sub esp, 8
fstp dword [esp + 4]
fld dword [edi + 0xf04]
lea edx, [ebp + 0xdc]
fstp dword [esp]
push edx
call fcn.00561300
fstp dword [esp + 0x20]
fldz
fld dword [esp + 0x20]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x56fb93
push ecx
lea esi, [esp + 0x44]
fstp dword [esp]
call fcn.0057e420
jmp 0x56fb95
fstp st(0)
fld dword [edi + 0xf04]
push ecx
lea eax, [esp + 0x7c]
fstp dword [esp]
push eax
lea esi, [ebp + 0x20]
call fcn.00561ab0
fld qword [esp + 0x80]
fstp dword [esp + 0x20]
sub esp, 8
fld dword [esp + 0x28]
lea esi, [esp + 0x48]
fstp dword [esp + 4]
fld qword [esp + 0x80]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.0057e370
fld dword [edi + 0xf04]
mov esi, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x6c]
fstp dword [esp]
push ecx
sub esi, 0xffffff80
call fcn.00561ab0
fld qword [esp + 0x70]
fstp dword [esp + 0x20]
sub esp, 8
fld dword [esp + 0x28]
lea esi, [esp + 0x48]
fstp dword [esp + 4]
fld qword [esp + 0x70]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.0057e370
fldz
mov edx, dword [esp + 0x2c]
sub esp, 8
fstp dword [esp + 4]
fld dword [edi + 0xf04]
add edx, 0xf0
fstp dword [esp]
push edx
call fcn.00561300
fstp dword [esp + 0x20]
fldz
fld dword [esp + 0x20]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x56fc65
push ecx
fstp dword [esp]
call fcn.0057e420
jmp 0x56fc67
fstp st(0)
lea eax, [esp + 0x40]
push eax
lea edx, [edi + 0xf78]
lea eax, [esp + 0x94]
call fcn.0057e110
mov edx, eax
lea eax, [esp + 0x40]
call fcn.0057e360
fldz
lea eax, [esp + 0x170]
mov ecx, 0x1ff
fst qword [eax]
add eax, 0x10
sub ecx, 1
fst qword [eax - 8]
jns 0x56fc97
mov ecx, dword [ebp + 0x148]
sub ecx, dword [ebp + 0x144]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x200
jle 0x56fcd0
mov eax, 0x200
jmp 0x56fced
mov ecx, dword [ebp + 0x148]
sub ecx, dword [ebp + 0x144]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], 0
test eax, eax
jle 0x56fda5
fstp st(0)
mov dword [esp + 0x18], 0
lea edi, [esp + 0x170]
mov ecx, dword [ebp + 0x148]
sub ecx, dword [ebp + 0x144]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x10], eax
jb 0x56fd3a
call fcn.006441b7
mov esi, dword [ebp + 0x144]
add esi, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x517c]
fld dword [ecx + 0xf04]
lea edx, [esp + 0xe4]
fstp dword [esp]
push edx
call fcn.00561ab0
lea ecx, [esp + 0x40]
lea esi, [esp + 0xd0]
call fcn.00560b40
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add dword [esp + 0x18], 0x60
mov dword [edi], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 4], edx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x10]
mov dword [edi + 8], ecx
inc eax
mov dword [edi + 0xc], edx
add edi, 0x10
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
jl 0x56fd12
fldz
lea eax, [esp + 0x2170]
mov ecx, 0x2ff
fst qword [eax]
add eax, 0x10
sub ecx, 1
fst qword [eax - 8]
jns 0x56fdb1
lea eax, [esp + 0x34]
fstp st(0)
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x2174]
push ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0x3c], 0
call fcn.005e9510
add esp, 8
cmp byte [esp + 0x17], 0
je 0x56ffe8
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x56ffe8
lea edx, [esp + 0x2178]
mov dword [esp + 0x10], edx
mov ebp, edx
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x517c]
xor eax, eax
cmp dword [ecx + 0x30], eax
je 0x56ff5e
fld qword [ebp - 8]
mov eax, ecx
fstp dword [esp + 0x40]
mov ecx, dword [eax + 0x30]
fld qword [ebp]
lea esi, [esp + 0x40]
fstp dword [esp + 0x44]
lea edi, [esp + 0x110]
fild dword [eax + 0x34]
fild dword [ecx + 0x2c]
fstp dword [esp + 0x20]
fld st(0)
fadd qword [ebp - 8]
fld dword [esp + 0x20]
fld st(0)
fdivp st(2)
fxch st(1)
fstp dword [esp + 0x58]
fild dword [eax + 0x38]
fild dword [ecx + 0x30]
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov ecx, 8
fstp dword [esp + 0x20]
fld st(0)
fadd qword [ebp]
fld dword [esp + 0x20]
fld st(0)
fdivp st(2)
fxch st(1)
fstp dword [esp + 0x5c]
fldz
fst dword [esp + 0x48]
fld1
fst dword [esp + 0x4c]
fld qword [ebp + 8]
rep movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x40]
fld qword [ebp + 0x10]
fstp dword [esp + 0x44]
fld st(5)
fadd qword [ebp + 8]
fdiv st(5)
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov ecx, 8
lea esi, [esp + 0x40]
lea edi, [esp + 0x130]
fstp dword [esp + 0x58]
fld st(3)
fadd qword [ebp + 0x10]
fdiv st(3)
fstp dword [esp + 0x5c]
fxch st(1)
fst dword [esp + 0x48]
fxch st(1)
fst dword [esp + 0x4c]
fld qword [ebp + 0x18]
rep movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x40]
fld qword [ebp + 0x20]
fstp dword [esp + 0x44]
fxch st(5)
fadd qword [ebp + 0x18]
fdivrp st(4)
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov ecx, 8
lea esi, [esp + 0x40]
lea edi, [esp + 0x150]
mov eax, 0x88ba50
fxch st(3)
fstp dword [esp + 0x58]
fxch st(1)
fadd qword [ebp + 0x20]
fdivrp st(1)
fstp dword [esp + 0x5c]
fstp dword [esp + 0x48]
fstp dword [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00430c20
mov ecx, dword [esp + 0x517c]
lea edx, [esp + 0x150]
push edx
mov edx, dword [ecx + 0x30]
lea eax, [esp + 0x134]
push eax
push edx
lea eax, [esp + 0x11c]
call fcn.004326e0
jmp 0x56ffd5
mov esi, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
lea edi, [esp + 0x40]
mov dword [esp + 0x34], 3
fld qword [esi - 8]
call fcn.0076f850
fld qword [esi]
mov dword [esp + 0x88], eax
call fcn.0076f850
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [edi + 4], eax
add esi, 0x10
add edi, 8
sub dword [esp + 0x34], 1
jne 0x56ff86
mov eax, dword [esp + 0x5178]
add eax, 0xe84
mov ecx, ebx
call fcn.00430c20
push 1
lea ecx, [esp + 0x44]
mov edx, ebx
call fcn.00431060
add dword [esp + 0x10], 0x30
add ebp, 0x30
sub dword [esp + 0x3c], 1
jne 0x56fe10
mov edx, dword [esp + 0x5178]
cmp byte [edx + 0xf58], 0
je 0x57008a
xor ecx, ecx
cmp byte [esp + 0x17], cl
je 0x570017
push 0xff
mov edx, 0xff
lea eax, [esp + 0xf4]
jmp 0x570025
push pe_nt_image_headers32
mov edx, pe_nt_image_headers32
lea eax, [esp + 0x104]
call fcn.00434890
mov ecx, ebx
call fcn.00430c20
mov ebp, dword [esp + 0x30]
xor eax, eax
test ebp, ebp
jle 0x57008a
lea esi, [esp + 0x170]
lea edi, [eax + 1]
fld qword [esi]
mov eax, edi
fld qword [esi + 8]
cdq
idiv ebp
shl edx, 4
fld qword [esp + edx + 0x170]
lea eax, [esp + edx + 0x170]
fld qword [eax + 8]
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
push ebx
call fcn.00431620
mov eax, edi
add esi, 0x10
cmp eax, ebp
jl 0x570042
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x5c]
sub ecx, dword [eax + 0x58]
mov esi, dword [esp + 0x1c]
add dword [esp + 0x28], 0x150
mov eax, 0x30c30c31
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
cmp esi, eax
mov dword [esp + 0x1c], esi
jl 0x56fad2
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x44]
sub ecx, dword [esi + 0x40]
mov eax, 0xae4c415d
imul ecx
add edx, ecx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
xor edi, edi
add ecx, edx
mov dword [esp + 0x1c], edi
test ecx, ecx
jle 0x570428
mov dword [esp + 0x28], edi
lea ecx, [ecx]
mov ecx, dword [esi + 0x44]
sub ecx, dword [esi + 0x40]
mov eax, 0xae4c415d
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x570114
call fcn.006441b7
mov ebp, dword [esi + 0x40]
add ebp, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x517c]
fld dword [ecx + 0xf04]
lea edi, [ebp + 0x90]
fstp dword [esp]
call fcn.005617b0
fcomp qword [0x82e3b8]
fnstsw ax
test ah, 0x41
jne 0x570148
mov al, 1
jmp 0x57014a
xor al, al
cmp byte [ebp + 0x28], 0
je 0x570154
test al, al
jne 0x57016c
mov edx, dword [esp + 0x5178]
cmp byte [edx + 0xf58], 0
je 0x5703f4
test al, al
je 0x57017a
mov ecx, 0xff
lea eax, [esp + 0x100]
jmp 0x570186
mov ecx, pe_nt_image_headers32
lea eax, [esp + 0xf0]
push 0
xor edx, edx
call fcn.00434890
mov ecx, ebx
call fcn.00430c20
mov eax, dword [ebp + 0x170]
sub eax, dword [ebp + 0x16c]
mov dword [esp + 0x10], 1
and eax, 0xfffffff0
cmp eax, 0x10
jle 0x5703f4
mov dword [esp + 0x18], 0x10
mov edi, edi
mov ecx, dword [ebp + 0x170]
sub ecx, dword [ebp + 0x16c]
mov edi, dword [esp + 0x10]
sar ecx, 4
lea edx, [edi - 1]
cmp edx, ecx
jb 0x5701df
call fcn.006441b7
mov eax, dword [ebp + 0x16c]
mov esi, dword [esp + 0x18]
mov ecx, dword [ebp + 0x170]
fld qword [eax + esi - 0x10]
sub ecx, dword [ebp + 0x16c]
fst qword [esp + 0x68]
fld qword [eax + esi - 8]
lea eax, [eax + esi - 0x10]
sar ecx, 4
fst qword [esp + 0x70]
cmp edi, ecx
jb 0x570221
fstp st(1)
fstp st(0)
call fcn.006441b7
fld qword [esp + 0x68]
fld qword [esp + 0x70]
mov eax, dword [ebp + 0x16c]
fld qword [eax + esi]
add eax, esi
fst qword [esp + 0x78]
fld qword [eax + 8]
fst qword [esp + 0x80]
fld dword [0x82e1e0]
fcomp dword [ebp + 0x24]
fnstsw ax
test ah, 1
jne 0x57026d
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
push ebx
call fcn.00431620
jmp 0x5703cb
fxch st(1)
lea edi, [esp + 0x88]
fsubrp st(3)
lea eax, [esp + 0x34]
fxch st(2)
fstp dword [esp + 0x34]
fsubp st(1)
fstp dword [esp + 0x38]
call fcn.00429340
fld dword [eax + 4]
mov ecx, dword [esp + 0x5178]
fchs
add ecx, 0xf78
fstp dword [esp + 0x20]
lea esi, [esp + 0x40]
fld dword [eax]
lea eax, [esp + 0xd0]
fstp dword [esp + 0x24]
fld dword [esp + 0x20]
fstp qword [esp + 0xd0]
fld dword [esp + 0x24]
fstp qword [esp + 0xd8]
call fcn.00560b40
fld qword [eax]
lea esi, [esp + 0x90]
fld qword [eax + 8]
xor eax, eax
fld dword [ebp + 0x24]
fld st(0)
fmul st(3)
fld st(2)
fmulp st(2)
fld qword [esp + 0x68]
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x90]
fld qword [esp + 0x70]
fadd st(2), st(0)
fxch st(2)
fstp qword [esp + 0x98]
fld dword [ebp + 0x24]
fld st(0)
fmul st(5)
fld st(4)
fmulp st(2)
fld qword [esp + 0x78]
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0xa0]
fld qword [esp + 0x80]
fadd st(2), st(0)
fxch st(2)
fstp qword [esp + 0xa8]
fld dword [ebp + 0x24]
fld st(0)
fmul st(7)
fstp qword [esp + 0xe0]
fmul st(5)
fxch st(1)
fsub qword [esp + 0xe0]
fstp qword [esp + 0xb0]
fsubp st(1)
fstp qword [esp + 0xb8]
fld dword [ebp + 0x24]
fld st(0)
fmulp st(5)
fmulp st(3)
fsubrp st(3)
fxch st(2)
fstp qword [esp + 0xc0]
fsubp st(1)
fstp qword [esp + 0xc8]
fld qword [esi]
lea edi, [eax + 1]
fld qword [esi + 8]
mov edx, edi
and edx, 0x80000003
jns 0x57038f
dec edx
or edx, 0xfffffffc
inc edx
shl edx, 4
fld qword [esp + edx + 0x90]
lea eax, [esp + edx + 0x90]
fld qword [eax + 8]
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
push ebx
call fcn.00431620
mov eax, edi
add esi, 0x10
cmp eax, 4
jl 0x570378
mov ecx, dword [ebp + 0x170]
sub ecx, dword [ebp + 0x16c]
mov eax, dword [esp + 0x10]
add dword [esp + 0x18], 0x10
inc eax
sar ecx, 4
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x5701c0
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x44]
sub ecx, dword [esi + 0x40]
mov edi, dword [esp + 0x1c]
add dword [esp + 0x28], 0x178
mov eax, 0xae4c415d
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
cmp edi, eax
mov dword [esp + 0x1c], edi
jl 0x5700f0
xor edi, edi
mov ecx, dword [esi + 0x74]
sub ecx, dword [esi + 0x70]
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x18], edi
test ecx, ecx
jle 0x570722
mov dword [esp + 0x1c], edi
jmp 0x570457
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x74]
sub ecx, dword [esi + 0x70]
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x57047b
call fcn.006441b7
mov ebp, dword [esi + 0x70]
add ebp, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x517c]
fld dword [ecx + 0xf04]
lea edi, [ebp + 0x138]
fstp dword [esp]
call fcn.005617b0
fcomp qword [0x82e3b8]
fnstsw ax
test ah, 0x41
jne 0x5704af
mov al, 1
jmp 0x5704b1
xor al, al
cmp byte [ebp + 0x1c], 0
je 0x5704bb
test al, al
jne 0x5704d3
mov edx, dword [esp + 0x5178]
cmp byte [edx + 0xf58], 0
je 0x5706ec
test al, al
je 0x5704e3
push 0xff
mov ecx, 0xff
lea eax, [esp + 0x44]
jmp 0x5704f1
push pe_nt_image_headers32
mov ecx, pe_nt_image_headers32
lea eax, [esp + 0x104]
xor edx, edx
call fcn.00434890
mov ecx, ebx
call fcn.00430c20
xor eax, eax
lea edi, [ebp + 0x2a8]
fld qword [edi]
lea esi, [eax + 1]
fld qword [edi + 8]
mov eax, esi
and eax, 0x80000003
jns 0x57051d
dec eax
or eax, 0xfffffffc
inc eax
shl eax, 4
fld qword [eax + ebp + 0x2a8]
lea eax, [eax + ebp + 0x2a8]
fld qword [eax + 8]
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
call fcn.0076f850
push eax
push ebx
call fcn.00431620
mov eax, esi
add edi, 0x10
cmp eax, 4
jl 0x570507
fldz
mov esi, dword [esp + 0x5178]
sub esp, 8
fstp dword [esp + 4]
fld dword [esi + 0xf04]
lea ecx, [ebp + 0x194]
fstp dword [esp]
push ecx
call fcn.00561300
fchs
push ecx
fstp dword [esp]
call fcn.00560bc0
fstp qword [esp + 0x8c]
lea edx, [ebp + 0xdc]
fldz
fstp dword [esp]
fld dword [esi + 0xf04]
push ecx
fstp dword [esp]
push edx
call fcn.00561300
fchs
push ecx
fstp dword [esp]
call fcn.00560bc0
fadd qword [esp + 0x8c]
add esp, 4
lea eax, [esp + 0x110]
fstp dword [esp + 0x20]
call fcn.0057e490
fld dword [esp + 0x20]
push ecx
fchs
fstp dword [esp]
call fcn.0057e540
fld qword [0x82df58]
lea eax, [esp + 0x90]
fstp qword [esp + 0x90]
xor edi, edi
fldz
mov dword [esp + 0x10], eax
fstp qword [esp + 0x98]
fld qword [0x82e3b0]
fst qword [esp + 0xa0]
fld qword [0x82e3a8]
fstp qword [esp + 0xa8]
fstp qword [esp + 0xb0]
fld qword [0x82dee0]
fstp qword [esp + 0xb8]
lea esi, [esp + 0x110]
call fcn.0057e720
mov ecx, eax
mov eax, dword [esp + 0x10]
lea esi, [esp + 0xf0]
call fcn.00560b40
fld qword [eax]
fadd qword [ebp + 0x2e8]
inc edi
mov ecx, 3
lea esi, [esp + 0x110]
fstp qword [esp + 0x78]
fld qword [ebp + 0x2f0]
fadd qword [eax + 8]
mov eax, edi
cdq
idiv ecx
fstp qword [esp + 0x80]
shl edx, 4
lea eax, [esp + edx + 0x90]
mov dword [esp + 0x20], eax
call fcn.0057e720
mov ecx, eax
mov eax, dword [esp + 0x20]
lea esi, [esp + 0xe0]
call fcn.00560b40
fld qword [eax]
fadd qword [ebp + 0x2e8]
fld qword [eax + 8]
fadd qword [ebp + 0x2f0]
call fcn.0076f850
push eax
call fcn.0076f850
fld qword [esp + 0x84]
push eax
call fcn.0076f850
fld qword [esp + 0x80]
push eax
call fcn.0076f850
push eax
push ebx
call fcn.00431620
add dword [esp + 0x10], 0x10
cmp edi, 3
jl 0x570630
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x74]
sub ecx, dword [eax + 0x70]
mov esi, dword [esp + 0x18]
add dword [esp + 0x1c], 0x2f8
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
cmp esi, eax
mov dword [esp + 0x18], esi
jl 0x570453
call fcn.00430bb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5164
ret 8