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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5f6f8b
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
push ebx
push esi
push edi
mov eax, dword [0x615cbc]
xor eax, esp
push eax
lea eax, [esp + 0xe0]
mov dword fs:[0], eax
mov dword [esp + 0x28], ecx
xorps xmm0, xmm0
xor eax, eax
mov edx, 1
movsd qword [esp + 0xbc], xmm0
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xac], xmm0
movsd qword [esp + 0xd4], xmm0
movsd qword [esp + 0xcc], xmm0
movsd qword [esp + 0xc4], xmm0
movsd qword [esp + 0x84], xmm0
movsd qword [esp + 0x7c], xmm0
movsd qword [esp + 0x74], xmm0
movsd qword [esp + 0x9c], xmm0
movsd qword [esp + 0x94], xmm0
movsd qword [esp + 0x8c], xmm0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], eax
mov edi, dword [ebp + 0xc]
cmp edi, 2
mov esi, edi
mov dword [esp + 0xe8], eax
mov dword [esp + 0x1c], esi
jle 0x5951ac
cmp dword [ecx + 0x38], 2
jle 0x5951ac
lea esi, [edi + 2]
mov dword [esp + 0x1c], esi
mov eax, dword [ecx + 0x38]
cmp esi, eax
mov dword [esp + 0x70], esi
jl 0x5951bb
mov dword [esp + 0x70], eax
cmp edi, 2
jle 0x5951ce
cmp eax, 2
jne 0x5951ce
lea eax, [esi + 2]
mov dword [esp + 0x40], eax
jmp 0x5951d2
mov dword [esp + 0x40], esi
cmp edi, edx
movsd xmm0, qword [ecx + 0x20]
mov ecx, dword [ebp + 8]
mulsd xmm0, qword [0x5fcab8]
movsd xmm2, qword [ecx + 0x10]
movsd xmm3, qword [ecx + 0x18]
movsd xmm4, qword [ecx + 0x20]
movsd xmm5, qword [ecx + 0x28]
movsd xmm1, qword [0x5fc860]
mov ebx, 0xf
mov dword [esp + 0x18], edx
jle 0x595498
lea edx, [edi - 1]
cmp edx, 4
jl 0x59540b
lea edx, [edi - 5]
shr edx, 2
inc edx
lea esi, [edx*4 + 1]
lea eax, [ecx + 0x90]
mov dword [esp + 0x18], esi
test bl, 1
je 0x59524e
movapd xmm6, xmm2
subsd xmm6, qword [eax - 8]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x59524e
and ebx, 0xfffffffe
test bl, 2
je 0x595268
movapd xmm6, xmm3
subsd xmm6, qword [eax]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595268
and ebx, 0xfffffffd
test bl, 4
je 0x595283
movapd xmm6, xmm4
subsd xmm6, qword [eax - 8]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595283
and ebx, 0xfffffffb
test bl, 8
je 0x59529d
movapd xmm6, xmm5
subsd xmm6, qword [eax]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x59529d
and ebx, 0xfffffff7
test bl, 1
je 0x5952b8
movapd xmm6, xmm2
subsd xmm6, qword [eax + 0x70]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x5952b8
and ebx, 0xfffffffe
test bl, 2
je 0x5952d3
movapd xmm6, xmm3
subsd xmm6, qword [eax + 0x78]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x5952d3
and ebx, 0xfffffffd
test bl, 4
je 0x5952ee
movapd xmm6, xmm4
subsd xmm6, qword [eax + 0x70]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x5952ee
and ebx, 0xfffffffb
test bl, 8
je 0x595309
movapd xmm6, xmm5
subsd xmm6, qword [eax + 0x78]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595309
and ebx, 0xfffffff7
test bl, 1
je 0x595327
movapd xmm6, xmm2
subsd xmm6, qword [eax + 0xe8]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595327
and ebx, 0xfffffffe
test bl, 2
je 0x595345
movapd xmm6, xmm3
subsd xmm6, qword [eax + 0xf0]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595345
and ebx, 0xfffffffd
test bl, 4
je 0x595363
movapd xmm6, xmm4
subsd xmm6, qword [eax + 0xe8]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595363
and ebx, 0xfffffffb
test bl, 8
je 0x595381
movapd xmm6, xmm5
subsd xmm6, qword [eax + 0xf0]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595381
and ebx, 0xfffffff7
test bl, 1
je 0x59539f
movapd xmm6, xmm2
subsd xmm6, qword [eax + 0x160]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x59539f
and ebx, 0xfffffffe
test bl, 2
je 0x5953bd
movapd xmm6, xmm3
subsd xmm6, qword [eax + 0x168]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x5953bd
and ebx, 0xfffffffd
test bl, 4
je 0x5953db
movapd xmm6, xmm4
subsd xmm6, qword [eax + 0x160]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x5953db
and ebx, 0xfffffffb
test bl, 8
je 0x5953f9
movapd xmm6, xmm5
subsd xmm6, qword [eax + 0x168]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x5953f9
and ebx, 0xfffffff7
add eax, 0x1e0
sub edx, 1
jne 0x595233
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp edx, edi
jge 0x595498
mov eax, edx
shl eax, 4
sub eax, edx
lea eax, [ecx + eax*8 + 0x18]
mov ecx, edi
sub ecx, edx
test bl, 1
je 0x595441
movapd xmm6, xmm2
subsd xmm6, qword [eax - 8]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595441
and ebx, 0xfffffffe
test bl, 2
je 0x59545b
movapd xmm6, xmm3
subsd xmm6, qword [eax]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x59545b
and ebx, 0xfffffffd
test bl, 4
je 0x595476
movapd xmm6, xmm4
subsd xmm6, qword [eax - 8]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595476
and ebx, 0xfffffffb
test bl, 8
je 0x595490
movapd xmm6, xmm5
subsd xmm6, qword [eax]
andpd xmm6, xmm1
comisd xmm6, xmm0
jbe 0x595490
and ebx, 0xfffffff7
add eax, 0x78
sub ecx, 1
jne 0x595426
test bl, 0xf
jne 0x5957c2
mov ecx, dword [esp + 0x40]
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0x1b], 0
call fcn.00412980
lea eax, [edi + 2]
cmp esi, eax
jg 0x5954bd
mov esi, eax
xor ecx, ecx
lea edi, [esi + esi]
mov eax, edi
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00423e60
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x595d51
xorps xmm0, xmm0
lea ecx, [edi - 1]
test ecx, ecx
jl 0x595502
movsd qword [eax + 8], xmm0
movsd qword [eax], xmm0
add eax, 0x10
sub ecx, 1
jns 0x5954f1
mov eax, dword [ebp + 0xc]
shl esi, 4
add esi, dword [esp + 0x20]
cmp eax, 2
mov edi, esi
mov dword [esp + 0x2c], edi
jle 0x595c48
cmp eax, 1
mov dword [esp + 0x3c], eax
mov dword [ebp + 0xc], 1
movsd qword [esp + 0x5c], xmm0
jle 0x595597
mov esi, dword [ebp + 8]
add esi, 0x38
dec eax
mov dword [esp + 0x1c], eax
lea esp, [esp]
movsd xmm0, qword [esi + 0x70]
subsd xmm0, qword [esi - 8]
movsd qword [esp + 0x44], xmm0
movsd xmm0, qword [esi + 0x78]
subsd xmm0, qword [esi]
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [esi + 0x80]
subsd xmm0, qword [esi + 8]
lea ecx, [esp + 0x44]
movsd qword [esp + 0x54], xmm0
call fcn.004a88b0
fadd qword [esp + 0x5c]
add esi, 0x78
sub dword [esp + 0x1c], 1
fstp qword [esp + 0x5c]
jne 0x595540
movsd xmm0, qword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
lea ecx, [eax - 1]
cvtsi2sd xmm1, ecx
divsd xmm0, xmm1
movapd xmm1, xmm0
movsd xmm0, qword [0x5fdfa8]
mulsd xmm0, qword [0x5fd068]
comisd xmm1, xmm0
movsd qword [esp + 0xa4], xmm1
jbe 0x5955ce
movsd qword [esp + 0xa4], xmm0
mov esi, 1
cmp eax, esi
mov dword [esp + 0x18], esi
jle 0x595696
mov edi, dword [ebp + 8]
lea edx, [edi + 0x40]
add edi, 0xb8
mov dword [esp + 0x5c], edx
mov dword [esp + 0x1c], edi
jmp 0x595600
mov eax, dword [esp + 0x5c]
movsd xmm0, qword [edi - 0x10]
subsd xmm0, qword [eax - 0x10]
movsd qword [esp + 0x44], xmm0
movsd xmm0, qword [edi - 8]
subsd xmm0, qword [eax - 8]
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [edi]
subsd xmm0, qword [eax]
lea ecx, [esp + 0x44]
movsd qword [esp + 0x54], xmm0
call fcn.004a88b0
fld qword [esp + 0xa4]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x595652
inc dword [ebp + 0xc]
add dword [esp + 0x5c], 0x78
mov eax, dword [ebp + 0xc]
cmp eax, 1
jle 0x59567c
dec eax
cmp eax, esi
jge 0x59567c
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x5c]
add esi, 0xffffffc0
add edi, 0xffffffc0
mov ecx, 0x1e
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
inc esi
add edi, 0x78
cmp esi, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
jl 0x595600
mov edi, dword [esp + 0x2c]
cmp dword [ebp + 0xc], 0
jle 0x5956e2
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 0xc]
add eax, 0x20
lea ecx, [edi + 0x10]
sub edx, edi
mov edi, edi
movq xmm0, qword [eax - 0x10]
movq qword [edx + ecx], xmm0
movq xmm0, qword [eax - 8]
movq qword [edx + ecx + 8], xmm0
movq xmm0, qword [eax]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
add eax, 0x78
add ecx, 0x10
sub esi, 1
jne 0x5956b0
cmp byte [esp + 0x17], 0
je 0x595719
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
push ebx
push eax
add edi, 0x10
add ecx, 0x10
push edi
push ecx
mov ecx, dword [esp + 0x38]
call fcn.005a5390
test al, al
jne 0x595d44
mov edx, dword [esp + 0x40]
push edx
lea ecx, [esp + 0x34]
call fcn.00412980
xor esi, esi
cmp dword [ebp + 0xc], esi
mov dword [esp + 0x18], esi
mov byte [esp + 0x17], 0
mov byte [esp + 0x27], 0
jle 0x595d44
mov ebx, dword [esp + 0x6c]
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x70], 2
jle 0x59584b
test esi, esi
jne 0x5957cc
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push edi
add eax, 0x10
push eax
add ecx, 0x10
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0xb8]
push edx
call fcn.005b6a80
movzx eax, al
neg eax
sbb eax, eax
lea ecx, [esp + 0xac]
and eax, ecx
mov dword [esp + 0x68], eax
je 0x59584b
test byte [edi], 8
je 0x59584b
movq xmm0, qword [edi + 0x60]
movq qword [esp + 0x74], xmm0
movq xmm0, qword [edi + 0x68]
movq qword [esp + 0x7c], xmm0
movq xmm0, qword [edi + 0x70]
mov byte [esp + 0x17], 1
movq qword [esp + 0x84], xmm0
jmp 0x59584b
mov byte [esp + 0x17], 1
jmp 0x5954b4
dec eax
cmp esi, eax
jne 0x59584b
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
mov edx, esi
shl edx, 4
sub edx, esi
lea edi, [eax + edx*8]
mov eax, dword [ebp + 0xc]
shl eax, 4
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x20]
push edi
push edx
add eax, ecx
mov ecx, dword [esp + 0x30]
push eax
lea edx, [esp + 0xd0]
push edx
call fcn.005b6a80
movzx ebx, al
neg ebx
sbb ebx, ebx
lea eax, [esp + 0xc4]
and ebx, eax
je 0x59584b
test byte [edi], 8
je 0x59584b
movq xmm0, qword [edi + 0x60]
movq qword [esp + 0x8c], xmm0
movq xmm0, qword [edi + 0x68]
movq qword [esp + 0x94], xmm0
movq xmm0, qword [edi + 0x70]
mov byte [esp + 0x27], 1
movq qword [esp + 0x9c], xmm0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
lea ecx, [edx + ecx + 0x18]
push ecx
mov ecx, dword [esp + 0x30]
mov eax, esi
shl eax, 4
lea edx, [eax + ecx + 0x10]
mov ecx, dword [esp + 0x24]
push edx
lea edx, [eax + ecx + 0x10]
mov eax, esi
shl eax, 4
sub eax, esi
lea ecx, [edi + eax*8]
push edx
push ecx
mov ecx, dword [esp + 0x38]
call fcn.005b68b0
test al, al
je 0x595893
inc dword [esp + 0x18]
add dword [esp + 0x1c], 0x18
mov eax, dword [ebp + 0xc]
inc esi
cmp esi, eax
jl 0x595740
mov esi, dword [esp + 0x18]
cmp esi, 1
jle 0x595d44
mov ecx, dword [esp + 0x30]
movq xmm0, qword [ecx + 0x18]
movq qword [ecx], xmm0
movq xmm0, qword [ecx + 0x20]
mov edx, dword [esp + 0x30]
lea eax, [ecx + 0x18]
movq qword [edx + 8], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0x30]
movq qword [eax + 0x10], xmm0
mov ecx, dword [esp + 0x30]
lea esi, [esi + esi*2]
add esi, esi
add esi, esi
add esi, esi
cmp byte [esp + 0x17], 0
movq xmm0, qword [esi + ecx]
lea eax, [esi + ecx]
movq qword [eax + 0x18], xmm0
movq xmm0, qword [eax + 8]
movq qword [eax + 0x20], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [eax + 0x28], xmm0
je 0x595a86
mov eax, dword [esp + 0x30]
xorps xmm0, xmm0
movsd qword [esp + 0x54], xmm0
movsd qword [esp + 0x4c], xmm0
movsd qword [esp + 0x44], xmm0
movsd xmm0, qword [eax + 0x30]
subsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x44], xmm0
movsd xmm0, qword [eax + 0x38]
subsd xmm0, qword [eax + 0x20]
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [eax + 0x40]
subsd xmm0, qword [eax + 0x28]
lea ecx, [esp + 0x44]
movsd qword [esp + 0x54], xmm0
call fcn.004a8b50
fstp st(0)
movsd xmm3, qword [esp + 0x44]
movsd xmm4, qword [esp + 0x4c]
movsd xmm5, qword [esp + 0x54]
movapd xmm1, xmm3
mulsd xmm1, qword [esp + 0xac]
movapd xmm0, xmm4
mulsd xmm0, qword [esp + 0xb4]
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, qword [esp + 0x74]
movapd xmm6, xmm4
mulsd xmm6, qword [esp + 0x7c]
addsd xmm2, xmm6
movapd xmm0, xmm5
mulsd xmm0, qword [esp + 0xbc]
addsd xmm1, xmm0
movsd xmm0, qword [0x5fc860]
movapd xmm6, xmm5
mulsd xmm6, qword [esp + 0x84]
addsd xmm2, xmm6
andpd xmm1, xmm0
andpd xmm2, xmm0
comisd xmm2, xmm1
lea edi, [esp + 0x74]
ja 0x5959ed
mov edi, dword [esp + 0x68]
movsd xmm0, qword [edi + 8]
movsd xmm1, qword [edi]
movsd xmm2, qword [edi + 0x10]
movapd xmm7, xmm4
mulsd xmm7, xmm0
movapd xmm6, xmm3
mulsd xmm6, xmm1
addsd xmm7, xmm6
movapd xmm6, xmm5
mulsd xmm6, xmm2
addsd xmm7, xmm6
xorps xmm6, xmm6
comisd xmm6, xmm7
jbe 0x595a46
movsd xmm7, qword [0x5fc740]
xorpd xmm1, xmm7
xorpd xmm0, xmm7
xorpd xmm2, xmm7
movsd qword [edi], xmm1
movsd qword [edi + 8], xmm0
movsd qword [edi + 0x10], xmm2
movsd xmm0, qword [edi + 8]
mulsd xmm0, xmm4
movapd xmm1, xmm3
mulsd xmm1, qword [edi]
addsd xmm0, xmm1
movsd xmm1, qword [edi + 0x10]
mulsd xmm1, xmm5
addsd xmm0, xmm1
movsd xmm1, qword [0x5fd618]
comisd xmm1, xmm0
jbe 0x595a8d
movq qword [edi], xmm3
movq qword [edi + 8], xmm4
movq qword [edi + 0x10], xmm5
jmp 0x595a8d
xorps xmm6, xmm6
mov edi, dword [esp + 0x68]
cmp byte [esp + 0x27], 0
je 0x595c12
mov eax, dword [esp + 0x30]
movsd qword [esp + 0x54], xmm6
movsd qword [esp + 0x4c], xmm6
movsd qword [esp + 0x44], xmm6
movsd xmm0, qword [esi + eax]
subsd xmm0, qword [esi + eax - 0x18]
movsd qword [esp + 0x44], xmm0
movsd xmm0, qword [esi + eax + 8]
subsd xmm0, qword [esi + eax - 0x10]
movsd qword [esp + 0x4c], xmm0
movsd xmm0, qword [esi + eax + 0x10]
subsd xmm0, qword [esi + eax - 8]
lea ecx, [esp + 0x44]
movsd qword [esp + 0x54], xmm0
call fcn.004a8b50
fstp st(0)
movsd xmm3, qword [esp + 0x44]
movsd xmm4, qword [esp + 0x4c]
movsd xmm5, qword [esp + 0x54]
movapd xmm1, xmm3
mulsd xmm1, qword [esp + 0xc4]
movapd xmm0, xmm4
mulsd xmm0, qword [esp + 0xcc]
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, qword [esp + 0x8c]
movapd xmm6, xmm4
mulsd xmm6, qword [esp + 0x94]
addsd xmm2, xmm6
movapd xmm0, xmm5
mulsd xmm0, qword [esp + 0xd4]
addsd xmm1, xmm0
movsd xmm0, qword [0x5fc860]
movapd xmm6, xmm5
mulsd xmm6, qword [esp + 0x9c]
addsd xmm2, xmm6
andpd xmm1, xmm0
andpd xmm2, xmm0
comisd xmm2, xmm1
jbe 0x595b7b
lea ebx, [esp + 0x8c]
movsd xmm0, qword [ebx + 8]
movsd xmm1, qword [ebx]
movsd xmm2, qword [ebx + 0x10]
movapd xmm6, xmm4
mulsd xmm6, xmm0
movapd xmm7, xmm3
mulsd xmm7, xmm1
addsd xmm6, xmm7
movapd xmm7, xmm5
mulsd xmm7, xmm2
addsd xmm6, xmm7
xorps xmm7, xmm7
comisd xmm7, xmm6
jbe 0x595bd4
movsd xmm6, qword [0x5fc740]
xorpd xmm1, xmm6
xorpd xmm0, xmm6
xorpd xmm2, xmm6
movsd qword [ebx], xmm1
movsd qword [ebx + 8], xmm0
movsd qword [ebx + 0x10], xmm2
movapd xmm0, xmm4
mulsd xmm0, qword [ebx + 8]
movapd xmm1, xmm3
mulsd xmm1, qword [ebx]
addsd xmm0, xmm1
movapd xmm1, xmm5
mulsd xmm1, qword [ebx + 0x10]
addsd xmm0, xmm1
movsd xmm1, qword [0x5fd618]
comisd xmm1, xmm0
jbe 0x595c12
movq qword [ebx], xmm3
movq qword [ebx + 8], xmm4
movq qword [ebx + 0x10], xmm5
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0xc]
add edx, 0x10
push edx
mov edx, dword [esp + 0x34]
add eax, 0x10
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x24]
push ebx
push edi
push edx
add ecx, 2
push eax
push ecx
mov ecx, dword [esp + 0x48]
call fcn.005b51b0
jmp 0x595d44
test eax, eax
jle 0x595c95
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 0xc]
add eax, 0x20
mov ecx, edi
sub edx, edi
lea ecx, [ecx]
movq xmm0, qword [eax - 0x10]
movq qword [edx + ecx], xmm0
movq xmm0, qword [eax - 8]
movq qword [edx + ecx + 8], xmm0
movq xmm0, qword [eax]
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
add eax, 0x78
add ecx, 0x10
sub esi, 1
jne 0x595c60
mov eax, dword [ebp + 0xc]
cmp byte [esp + 0x17], 0
je 0x595cc9
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push ebx
push edx
push edi
push eax
call fcn.005a5390
test al, al
jne 0x595d44
mov ecx, dword [esp + 0x40]
push ecx
lea ecx, [esp + 0x34]
call fcn.00412980
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], 0
test eax, eax
jle 0x595d44
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
xor edi, edi
sub eax, esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x3c], edx
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x6c]
add eax, edi
push eax
lea edx, [esi + ecx]
mov ecx, dword [esp + 0x2c]
push edx
push esi
push ebx
call fcn.005b68b0
test al, al
mov eax, 1
je 0x595d1a
add dword [esp + 0x18], eax
add edi, 0x18
add esi, 0x10
add ebx, 0x78
sub dword [esp + 0x3c], eax
jne 0x595cf0
cmp dword [esp + 0x18], eax
jle 0x595d44
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x38]
push edx
call fcn.005b4be0
mov eax, dword [esp + 0x20]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x595d63
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov ecx, dword [esp + 0xe0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8