Function at 0x5282e0
Capabilities:
Write file on windows

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x528310
test dword [0x87ed4c], 0xffffffff
jne 0x529310
call fcn.007663a0
jmp fcn.005282e0
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x3c
mov edi, ecx
mov edx, dword [eax + 0x14]
cmp edx, dword [eax + 0x10]
mov dword [esp + 0x24], eax
mov dword [eax + 0x60], 1
jg 0x52838d
cvtsi2sd xmm0, edx
mulsd xmm0, qword [0x78d030]
addsd xmm0, qword [0x78d028]
cvttsd2si edx, xmm0
mov dword [eax + 0x14], edx
mov eax, dword [eax + 0x18]
shl edx, 2
test eax, eax
je 0x5292f7
push edx
push eax
call fcn.007436c1
add esp, 8
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
mov eax, dword [edx + 0x1c]
mov edx, dword [edx + 0x14]
shl edx, 2
test eax, eax
je 0x5292eb
push edx
push eax
call fcn.007436c1
add esp, 8
mov edx, dword [esp + 0x24]
mov dword [edx + 0x1c], eax
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 8]
shl eax, 5
lea ecx, [eax + edx*8 + 0x80]
push ecx
call fcn.0074334f
pop ecx
mov esi, eax
mov eax, dword [edi]
cmp eax, 0x1f
ja case.0x5283b8.2
mov eax, dword [eax*4 + 0x7894e0]
jmp eax
mov ecx, dword [edi + 0x14]
mov dword [esp + 8], ecx
lea eax, [esi + 0xc]
mov edx, edi
call fcn.0052a3f0
mov eax, dword [0x84f850]
mov dword [esp + 0x30], eax
test eax, eax
je 0x5283fc
movzx edx, byte [esp + 8]
movzx eax, byte [esp + 0xb]
movzx ebx, byte [esp + 9]
movzx ecx, byte [esp + 0xa]
mov byte [esp + 8], al
mov byte [esp + 0xb], dl
mov byte [esp + 9], cl
mov byte [esp + 0xa], bl
mov eax, dword [esp + 8]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 0x14]
test eax, eax
jle 0x528514
xor ecx, ecx
mov eax, dword [edi + 0x18]
inc ecx
mov ebx, ecx
shl ebx, 4
lea edx, [esi + ebx]
movsd xmm0, qword [eax + ecx*8 - 8]
movsd qword [edx + 0x20], xmm0
mov eax, dword [edi + 0x1c]
movsd xmm0, qword [eax + ecx*8 - 8]
movsd qword [esi + ebx + 0x28], xmm0
cmp dword [esp + 0x30], 0
je 0x528509
movzx eax, byte [ebx + esi + 0x20]
movzx edx, byte [ebx + esi + 0x27]
mov byte [ebx + esi + 0x20], dl
mov byte [ebx + esi + 0x27], al
movzx eax, byte [ebx + esi + 0x21]
mov dword [esp + 8], eax
movzx eax, byte [ebx + esi + 0x26]
mov byte [ebx + esi + 0x21], al
mov eax, dword [esp + 8]
mov byte [ebx + esi + 0x26], al
movzx eax, byte [ebx + esi + 0x22]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + esi + 0x25]
mov byte [ebx + esi + 0x22], al
mov eax, dword [esp + 0xc]
mov byte [ebx + esi + 0x25], al
movzx eax, byte [ebx + esi + 0x23]
mov dword [esp + 0x10], eax
movzx eax, byte [ebx + esi + 0x24]
mov byte [ebx + esi + 0x23], al
mov eax, dword [esp + 0x10]
mov byte [ebx + esi + 0x24], al
movzx eax, byte [ebx + esi + 0x28]
mov dword [esp + 0x14], eax
movzx eax, byte [ebx + esi + 0x2f]
mov byte [ebx + esi + 0x28], al
mov eax, dword [esp + 0x14]
mov byte [ebx + esi + 0x2f], al
movzx eax, byte [ebx + esi + 0x29]
mov dword [esp + 0x18], eax
movzx eax, byte [ebx + esi + 0x2e]
mov byte [ebx + esi + 0x29], al
mov eax, dword [esp + 0x18]
mov byte [ebx + esi + 0x2e], al
movzx eax, byte [ebx + esi + 0x2a]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebx + esi + 0x2d]
mov byte [ebx + esi + 0x2a], al
mov eax, dword [esp + 0x1c]
mov byte [ebx + esi + 0x2d], al
movzx eax, byte [ebx + esi + 0x2b]
mov dword [esp + 0x20], eax
movzx eax, byte [ebx + esi + 0x2c]
mov byte [ebx + esi + 0x2b], al
mov eax, dword [esp + 0x20]
mov byte [ebx + esi + 0x2c], al
mov eax, dword [edi + 0x14]
cmp ecx, eax
jl 0x528410
shl eax, 4
mov edx, dword [edi]
lea ebx, [eax + 0x30]
cmp edx, 0x12
je 0x528b3a
cmp edx, 0x1c
je 0x528533
cmp edx, 0x12
jne 0x52890d
movsd xmm0, qword [edi + 0x40]
lea ecx, [ebx + esi]
movsd qword [ecx], xmm0
cmp dword [esp + 0x30], 0
je 0x52859e
movzx eax, byte [esi + ebx]
movzx edx, byte [esi + ebx + 7]
mov byte [esi + ebx], dl
mov byte [esi + ebx + 7], al
movzx eax, byte [ecx + 1]
mov dword [esp + 8], eax
movzx eax, byte [esi + ebx + 6]
mov byte [ecx + 1], al
mov eax, dword [esp + 8]
mov byte [esi + ebx + 6], al
movzx eax, byte [ecx + 2]
mov dword [esp + 0xc], eax
movzx eax, byte [esi + ebx + 5]
mov byte [ecx + 2], al
mov eax, dword [esp + 0xc]
mov byte [esi + ebx + 5], al
movzx eax, byte [ecx + 3]
mov dword [esp + 0x10], eax
movzx eax, byte [esi + ebx + 4]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x10]
mov byte [esi + ebx + 4], cl
movsd xmm0, qword [edi + 0x60]
mov ecx, ebx
movsd qword [ebx + esi + 8], xmm0
je 0x52860d
movzx eax, byte [esi + ebx + 8]
movzx edx, byte [esi + ebx + 0xf]
mov byte [esi + ebx + 8], dl
mov byte [esi + ebx + 0xf], al
movzx eax, byte [esi + ebx + 9]
mov dword [esp + 8], eax
movzx eax, byte [esi + ebx + 0xe]
mov byte [esi + ebx + 9], al
mov eax, dword [esp + 8]
mov byte [esi + ebx + 0xe], al
movzx eax, byte [esi + ebx + 0xa]
mov dword [esp + 0xc], eax
movzx eax, byte [esi + ebx + 0xd]
mov byte [esi + ebx + 0xa], al
mov eax, dword [esp + 0xc]
mov byte [esi + ebx + 0xd], al
movzx eax, byte [esi + ebx + 0xb]
mov dword [esp + 0x10], eax
movzx eax, byte [esi + ebx + 0xc]
mov byte [esi + ebx + 0xb], al
mov eax, dword [esp + 0x10]
mov byte [esi + ebx + 0xc], al
add ebx, 0x10
cmp dword [edi + 0x14], 0
jle 0x52890d
xor eax, eax
lea edx, [esi + ecx]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], esi
mov edx, dword [edi + 0x24]
inc eax
lea ebx, [eax*8]
movsd xmm0, qword [edx + eax*8 - 8]
mov ecx, dword [esp + 0x18]
movsd qword [ecx + eax*8 + 8], xmm0
cmp dword [esp + 0x30], 0
je 0x5286af
mov esi, ecx
movzx edx, byte [esi + ebx + 8]
movzx ecx, byte [esi + ebx + 0xf]
mov byte [esi + ebx + 8], cl
mov byte [esi + ebx + 0xf], dl
movzx edx, byte [esi + ebx + 9]
mov dword [esp + 8], edx
movzx edx, byte [esi + ebx + 0xe]
mov byte [esi + ebx + 9], dl
mov edx, dword [esp + 8]
mov byte [esi + ebx + 0xe], dl
movzx edx, byte [esi + ebx + 0xa]
mov dword [esp + 0xc], edx
movzx edx, byte [esi + ebx + 0xd]
mov byte [esi + ebx + 0xa], dl
mov edx, dword [esp + 0xc]
mov byte [esi + ebx + 0xd], dl
movzx edx, byte [esi + ebx + 0xb]
mov dword [esp + 0x10], edx
movzx edx, byte [esi + ebx + 0xc]
mov byte [esi + ebx + 0xb], dl
mov edx, dword [esp + 0x10]
mov byte [esi + ebx + 0xc], dl
mov edx, dword [esp + 0x14]
lea ebx, [edx + eax*8]
add ebx, 0x10
cmp eax, dword [edi + 0x14]
jl 0x52862b
mov esi, dword [esp + 0x28]
jmp 0x52890d
mov ecx, dword [edi + 0x14]
mov ebx, dword [edi + 8]
mov dword [esp + 8], ecx
lea eax, [esi + 0xc]
mov edx, edi
mov dword [esp + 0xc], ebx
call fcn.0052a3f0
mov eax, dword [0x84f850]
mov dword [esp + 0x30], eax
test eax, eax
je 0x528738
movzx edx, byte [esp + 8]
movzx eax, byte [esp + 0xb]
movzx ebx, byte [esp + 9]
movzx ecx, byte [esp + 0xa]
mov byte [esp + 8], al
movzx eax, byte [esp + 0xf]
mov byte [esp + 0xb], dl
movzx edx, byte [esp + 0xc]
mov byte [esp + 9], cl
movzx ecx, byte [esp + 0xe]
mov byte [esp + 0xa], bl
movzx ebx, byte [esp + 0xd]
mov byte [esp + 0xc], al
mov byte [esp + 0xf], dl
mov byte [esp + 0xd], cl
mov byte [esp + 0xe], bl
mov eax, dword [esp + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 8]
lea edx, [esi + 0x34]
shl eax, 2
push eax
push dword [edi + 0xc]
push edx
call fcn.007666b0
add esp, 0xc
mov ecx, dword [edi + 8]
test ecx, ecx
jle 0x5291f5
mov edx, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
inc eax
test edx, edx
jne 0x52878a
lea ebx, [eax*4 + 0x34]
cmp eax, ecx
jl 0x528775
jmp 0x528cc3
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
movzx ecx, byte [esi + eax*4 + 0x30]
movzx ebx, byte [esi + eax*4 + 0x33]
mov byte [esi + eax*4 + 0x30], bl
movzx ebx, byte [esi + eax*4 + 0x32]
mov byte [esi + eax*4 + 0x33], cl
movzx ecx, byte [esi + eax*4 + 0x31]
mov byte [esi + eax*4 + 0x31], bl
lea ebx, [eax*4 + 0x34]
mov byte [esi + eax*4 + 0x32], cl
mov ecx, dword [edi + 8]
cmp eax, ecx
jl 0x528775
jmp 0x528ccb
mov eax, dword [edi + 0x18]
movsd xmm0, qword [eax]
movsd qword [esi + 0xc], xmm0
mov eax, dword [edi + 0x1c]
movsd xmm0, qword [eax]
movsd qword [esi + 0x14], xmm0
mov eax, dword [0x84f850]
mov dword [esp + 0x30], eax
test eax, eax
je 0x52885e
movzx edx, byte [esi + 0xc]
movzx eax, byte [esi + 0x13]
movzx ebx, byte [esi + 0xd]
movzx ecx, byte [esi + 0x12]
mov byte [esi + 0xc], al
movzx eax, byte [esi + 0x11]
mov byte [esi + 0x13], dl
movzx edx, byte [esi + 0xe]
mov byte [esi + 0xd], cl
movzx ecx, byte [esi + 0x10]
mov byte [esi + 0x12], bl
movzx ebx, byte [esi + 0xf]
mov byte [esi + 0xe], al
movzx eax, byte [esi + 0x1b]
mov byte [esi + 0x11], dl
movzx edx, byte [esi + 0x14]
mov byte [esi + 0xf], cl
movzx ecx, byte [esi + 0x1a]
mov byte [esi + 0x10], bl
movzx ebx, byte [esi + 0x15]
mov byte [esi + 0x14], al
movzx eax, byte [esi + 0x19]
mov byte [esi + 0x1b], dl
movzx edx, byte [esi + 0x16]
mov byte [esi + 0x15], cl
movzx ecx, byte [esi + 0x18]
mov byte [esi + 0x1a], bl
movzx ebx, byte [esi + 0x17]
mov byte [esi + 0x16], al
mov byte [esi + 0x19], dl
mov byte [esi + 0x17], cl
mov byte [esi + 0x18], bl
mov edx, dword [edi]
cmp edx, 0xb
je 0x5291ff
mov ebx, 0x1c
cmp edx, 0x15
je 0x52887c
cmp edx, 0xb
jne 0x52890d
mov edx, dword [edi + 0x24]
movsd xmm0, qword [edx]
movsd qword [esi + ebx], xmm0
cmp dword [esp + 0x30], 0
je 0x5288ed
movzx edx, byte [esi + ebx]
movzx ecx, byte [esi + ebx + 7]
mov byte [esi + ebx], cl
mov byte [esi + ebx + 7], dl
movzx edx, byte [esi + ebx + 1]
mov dword [esp + 8], edx
movzx edx, byte [esi + ebx + 6]
mov byte [esi + ebx + 1], dl
mov edx, dword [esp + 8]
mov byte [esi + ebx + 6], dl
movzx edx, byte [esi + ebx + 2]
mov dword [esp + 0xc], edx
movzx edx, byte [esi + ebx + 5]
mov byte [esi + ebx + 2], dl
mov edx, dword [esp + 0xc]
mov byte [esi + ebx + 5], dl
movzx edx, byte [esi + ebx + 3]
mov dword [esp + 0x10], edx
movzx edx, byte [esi + ebx + 4]
mov byte [esi + ebx + 3], dl
mov edx, dword [esp + 0x10]
mov byte [esi + ebx + 4], dl
add ebx, 8
jmp 0x52890d
mov eax, dword [0x84f850]
mov dword [esp + 0x30], eax
mov ebx, 0xc
jmp 0x52890d
mov eax, dword [0x84f850]
mov dword [esp + 0x30], eax
xor ebx, ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x2c], edi
mov edi, dword [eax + 0x18]
mov dword [esp + 0x28], esi
mov esi, dword [eax + 0xc]
mov dword [esp + 0x10], ecx
lea edx, [ecx + 1]
mov dword [eax + 0x10], edx
mov dword [esp + 0x14], esi
mov dword [edi + ecx*4], esi
mov edi, dword [eax + 0x1c]
lea esi, [ebx - 8]
mov dword [esp + 0x18], esi
mov dword [edi + ecx*4], esi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
add dword [eax + 0xc], ebx
cmp dword [esp + 0x30], 0
mov dword [esp + 0xc], edx
jne 0x528982
movzx edx, byte [esp + 0xc]
movzx ecx, byte [esp + 0xf]
mov byte [esp + 0xc], cl
mov byte [esp + 0xf], dl
movzx edx, byte [esp + 0xd]
mov dword [esp + 8], edx
movzx edx, byte [esp + 0xe]
mov byte [esp + 0xd], dl
mov edx, dword [esp + 8]
mov byte [esp + 0xe], dl
mov edx, dword [esp + 0xc]
mov dword [esi], edx
mov edx, dword [esp + 0x18]
shr edx, 0x1f
lea ecx, [ebx + edx - 8]
sar ecx, 1
cmp dword [esp + 0x30], 0
mov dword [esp + 0xc], ecx
jne 0x5289cc
movzx edx, byte [esp + 0xc]
movzx ecx, byte [esp + 0xf]
mov byte [esp + 0xc], cl
mov byte [esp + 0xf], dl
movzx edx, byte [esp + 0xd]
mov dword [esp + 8], edx
movzx edx, byte [esp + 0xe]
mov byte [esp + 0xd], dl
mov edx, dword [esp + 8]
mov byte [esp + 0xe], dl
mov edx, dword [esp + 0xc]
mov dword [esi + 4], edx
mov edx, dword [edi]
cmp dword [esp + 0x30], 0
mov dword [esp + 0xc], edx
je 0x528a0c
movzx edx, byte [esp + 0xc]
movzx ecx, byte [esp + 0xf]
mov byte [esp + 0xc], cl
mov byte [esp + 0xf], dl
movzx edx, byte [esp + 0xd]
mov dword [esp + 8], edx
movzx edx, byte [esp + 0xe]
mov byte [esp + 0xd], dl
mov edx, dword [esp + 8]
mov byte [esp + 0xe], dl
mov edx, dword [esp + 0xc]
mov dword [esi + 8], edx
push 0
push dword [esp + 0x18]
mov edx, eax
push dword [edx]
call fcn.0074327b
add esp, 0xc
test eax, eax
jne 0x528b18
mov edx, dword [esp + 0x24]
push dword [edx]
push 1
push ebx
push esi
call fcn.00742cfc
add esp, 0x10
cmp eax, 1
jb 0x528b18
push esi
call fcn.00743035
pop ecx
mov eax, dword [esp + 0x24]
xorps xmm2, xmm2
movsd xmm0, qword [eax + 0x20]
ucomisd xmm0, xmm2
jp 0x528a67
je 0x529256
mov eax, dword [edi + 0x14]
test eax, eax
jle 0x528b0a
mov edx, dword [edi + 0x18]
mov ebx, dword [edi + 0x1c]
mov esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
mov edi, dword [esp + 0x24]
movsd xmm7, qword [edi + 0x28]
movsd xmm6, qword [edi + 0x30]
movsd xmm5, qword [edi + 0x38]
movsd xmm4, qword [edi + 0x40]
movsd xmm3, qword [edi + 0x48]
movsd xmm2, qword [edi + 0x50]
movsd xmm1, qword [edi + 0x58]
mov dword [esp + 8], edx
xor edx, edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
minsd xmm0, qword [eax + edx*8]
movsd qword [edi + 0x20], xmm0
minsd xmm7, qword [ebx + edx*8]
movsd qword [edi + 0x28], xmm7
minsd xmm6, qword [esi + edx*8]
movsd qword [edi + 0x30], xmm6
minsd xmm5, qword [ecx + edx*8]
movsd qword [edi + 0x38], xmm5
maxsd xmm4, qword [eax + edx*8]
movsd qword [edi + 0x40], xmm4
maxsd xmm3, qword [ebx + edx*8]
movsd qword [edi + 0x48], xmm3
maxsd xmm2, qword [esi + edx*8]
movsd qword [edi + 0x50], xmm2
maxsd xmm1, qword [ecx + edx*8]
inc edx
cmp edx, dword [esp + 0xc]
movsd qword [edi + 0x58], xmm1
jl 0x528ab3
mov eax, dword [esp + 0x10]
add esp, 0x3c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push str.Error_in_fseek___or_fwrite__._n
call fcn.00744945
push esi
call fcn.00743035
add esp, 8
mov eax, 0xffffffff
add esp, 0x3c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
movsd xmm0, qword [edi + 0x38]
mov edx, eax
movsd qword [esi + edx + 0x30], xmm0
cmp dword [esp + 0x30], 0
je 0x528ba6
movzx edx, byte [eax + esi + 0x30]
movzx ecx, byte [eax + esi + 0x37]
mov dword [esp + 8], ebx
mov ebx, edx
movzx edx, byte [eax + esi + 0x31]
mov byte [eax + esi + 0x30], cl
movzx ecx, byte [eax + esi + 0x36]
mov byte [eax + esi + 0x37], bl
mov ebx, edx
movzx edx, byte [eax + esi + 0x32]
mov byte [eax + esi + 0x31], cl
movzx ecx, byte [eax + esi + 0x35]
mov byte [eax + esi + 0x36], bl
mov ebx, edx
movzx edx, byte [eax + esi + 0x33]
mov byte [eax + esi + 0x32], cl
movzx ecx, byte [eax + esi + 0x34]
mov byte [eax + esi + 0x35], bl
mov ebx, edx
mov byte [eax + esi + 0x33], cl
mov byte [eax + esi + 0x34], bl
mov ebx, dword [esp + 8]
mov dword [esp + 0x14], ebx
movsd xmm0, qword [edi + 0x58]
movsd qword [esi + eax + 0x38], xmm0
je 0x528c07
movzx edx, byte [eax + esi + 0x38]
movzx ecx, byte [eax + esi + 0x3f]
mov ebx, edx
movzx edx, byte [eax + esi + 0x39]
mov byte [eax + esi + 0x38], cl
movzx ecx, byte [eax + esi + 0x3e]
mov byte [eax + esi + 0x3f], bl
mov ebx, edx
movzx edx, byte [eax + esi + 0x3a]
mov byte [eax + esi + 0x39], cl
movzx ecx, byte [eax + esi + 0x3d]
mov byte [eax + esi + 0x3e], bl
mov ebx, edx
movzx edx, byte [eax + esi + 0x3b]
mov byte [eax + esi + 0x3a], cl
movzx ecx, byte [eax + esi + 0x3c]
mov byte [eax + esi + 0x3d], bl
mov ebx, edx
mov byte [eax + esi + 0x3b], cl
mov byte [eax + esi + 0x3c], bl
cmp dword [edi + 0x14], 0
lea ebx, [eax + 0x40]
jle 0x528cbc
mov eax, dword [esp + 0x14]
xor edx, edx
add eax, esi
mov dword [esp + 0x28], esi
mov ecx, dword [edi + 0x20]
inc edx
lea esi, [edx*8]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd qword [eax + edx*8 + 8], xmm0
cmp dword [esp + 0x30], 0
je 0x528c9e
movzx ecx, byte [eax + esi + 8]
movzx ebx, byte [eax + esi + 0xf]
mov byte [eax + esi + 8], bl
mov byte [eax + esi + 0xf], cl
movzx ecx, byte [eax + esi + 9]
mov dword [esp + 8], ecx
movzx ecx, byte [eax + esi + 0xe]
mov byte [eax + esi + 9], cl
mov ecx, dword [esp + 8]
mov byte [eax + esi + 0xe], cl
movzx ecx, byte [eax + esi + 0xa]
mov dword [esp + 0xc], ecx
movzx ecx, byte [eax + esi + 0xd]
mov byte [eax + esi + 0xa], cl
mov ecx, dword [esp + 0xc]
mov byte [eax + esi + 0xd], cl
movzx ecx, byte [eax + esi + 0xb]
mov dword [esp + 0x10], ecx
movzx ecx, byte [eax + esi + 0xc]
mov byte [eax + esi + 0xb], cl
mov ecx, dword [esp + 0x10]
mov byte [eax + esi + 0xc], cl
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + edx*8]
add ebx, 0x10
cmp edx, dword [edi + 0x14]
jl 0x528c20
mov esi, dword [esp + 0x28]
mov edx, dword [edi]
jmp 0x528525
mov edx, dword [edi]
jmp 0x528525
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
cmp dword [edi], 0x1f
mov dword [esp + 0xc], ebx
je 0x52915f
cmp dword [edi + 0x14], 0
mov edx, ebx
jle 0x528e05
mov dword [esp + 8], 0
lea ecx, [esi + ebx]
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 8]
mov edx, dword [edi + 0x18]
inc esi
mov ebx, esi
shl ebx, 4
lea eax, [ecx + ebx]
movsd xmm0, qword [edx + esi*8 - 8]
movsd qword [eax - 0x10], xmm0
mov edx, dword [edi + 0x1c]
movsd xmm0, qword [edx + esi*8 - 8]
movsd qword [ebx + ecx - 8], xmm0
cmp dword [esp + 0x30], 0
je 0x528df4
movzx eax, byte [ecx + ebx - 0x10]
movzx edx, byte [ecx + ebx - 9]
mov byte [ecx + ebx - 0x10], dl
mov byte [ecx + ebx - 9], al
movzx eax, byte [ecx + ebx - 0xf]
mov dword [esp + 8], eax
movzx eax, byte [ecx + ebx - 0xa]
mov byte [ecx + ebx - 0xf], al
mov eax, dword [esp + 8]
mov byte [ecx + ebx - 0xa], al
movzx eax, byte [ecx + ebx - 0xe]
mov dword [esp + 0xc], eax
movzx eax, byte [ecx + ebx - 0xb]
mov byte [ecx + ebx - 0xe], al
mov eax, dword [esp + 0xc]
mov byte [ecx + ebx - 0xb], al
movzx eax, byte [ecx + ebx - 0xd]
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + ebx - 0xc]
mov byte [ecx + ebx - 0xd], al
mov eax, dword [esp + 0x10]
mov byte [ecx + ebx - 0xc], al
movzx eax, byte [ecx + ebx - 8]
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + ebx - 1]
mov byte [ecx + ebx - 8], al
mov eax, dword [esp + 0x14]
mov byte [ecx + ebx - 1], al
movzx eax, byte [ecx + ebx - 7]
mov dword [esp + 0x18], eax
movzx eax, byte [ecx + ebx - 2]
mov byte [ecx + ebx - 7], al
mov eax, dword [esp + 0x18]
mov byte [ecx + ebx - 2], al
movzx eax, byte [ecx + ebx - 6]
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + ebx - 3]
mov byte [ecx + ebx - 6], al
mov eax, dword [esp + 0x1c]
mov byte [ecx + ebx - 3], al
movzx eax, byte [ecx + ebx - 5]
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + ebx - 4]
mov byte [ecx + ebx - 5], al
mov eax, dword [esp + 0x20]
mov byte [ecx + ebx - 4], al
add ebx, dword [esp + 0x34]
cmp esi, dword [edi + 0x14]
jl 0x528cfb
mov esi, dword [esp + 0x28]
mov ecx, dword [edi]
cmp ecx, 0x20
jae 0x52890d
mov edx, 1
shl edx, cl
test edx, 0x8000a000
je 0x528fb7
movsd xmm0, qword [edi + 0x38]
lea ecx, [ebx + esi]
movsd qword [ecx], xmm0
cmp dword [esp + 0x30], 0
je 0x528e8e
movzx eax, byte [esi + ebx]
movzx edx, byte [esi + ebx + 7]
mov byte [esi + ebx], dl
mov byte [esi + ebx + 7], al
movzx eax, byte [ecx + 1]
mov dword [esp + 8], eax
movzx eax, byte [esi + ebx + 6]
mov byte [ecx + 1], al
mov eax, dword [esp + 8]
mov byte [esi + ebx + 6], al
movzx eax, byte [ecx + 2]
mov dword [esp + 0xc], eax
movzx eax, byte [esi + ebx + 5]
mov byte [ecx + 2], al
mov eax, dword [esp + 0xc]
mov byte [esi + ebx + 5], al
movzx eax, byte [ecx + 3]
mov dword [esp + 0x10], eax
movzx eax, byte [esi + ebx + 4]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x10]
mov byte [esi + ebx + 4], cl
movsd xmm0, qword [edi + 0x58]
mov eax, ebx
movsd qword [ebx + esi + 8], xmm0
je 0x528efd
movzx edx, byte [esi + ebx + 8]
movzx ecx, byte [esi + ebx + 0xf]
mov byte [esi + ebx + 8], cl
mov byte [esi + ebx + 0xf], dl
movzx edx, byte [esi + ebx + 9]
mov dword [esp + 8], edx
movzx edx, byte [esi + ebx + 0xe]
mov byte [esi + ebx + 9], dl
mov edx, dword [esp + 8]
mov byte [esi + ebx + 0xe], dl
movzx edx, byte [esi + ebx + 0xa]
mov dword [esp + 0xc], edx
movzx edx, byte [esi + ebx + 0xd]
mov byte [esi + ebx + 0xa], dl
mov edx, dword [esp + 0xc]
mov byte [esi + ebx + 0xd], dl
movzx edx, byte [esi + ebx + 0xb]
mov dword [esp + 0x10], edx
movzx edx, byte [esi + ebx + 0xc]
mov byte [esi + ebx + 0xb], dl
mov edx, dword [esp + 0x10]
mov byte [esi + ebx + 0xc], dl
add ebx, 0x10
cmp dword [edi + 0x14], 0
jle 0x529158
xor edx, edx
lea ecx, [esi + eax]
mov dword [esp + 0x28], esi
mov ebx, dword [edi + 0x20]
inc edx
lea esi, [edx*8]
movsd xmm0, qword [ebx + edx*8 - 8]
movsd qword [ecx + edx*8 + 8], xmm0
cmp dword [esp + 0x30], 0
je 0x528f99
movzx ebx, byte [ecx + esi + 0xf]
mov dword [esp + 8], edx
movzx edx, byte [ecx + esi + 8]
mov byte [ecx + esi + 8], bl
mov byte [ecx + esi + 0xf], dl
movzx edx, byte [ecx + esi + 9]
mov dword [esp + 0xc], edx
movzx edx, byte [ecx + esi + 0xe]
mov byte [ecx + esi + 9], dl
mov edx, dword [esp + 0xc]
mov byte [ecx + esi + 0xe], dl
movzx edx, byte [ecx + esi + 0xa]
mov dword [esp + 0x10], edx
movzx edx, byte [ecx + esi + 0xd]
mov byte [ecx + esi + 0xa], dl
mov edx, dword [esp + 0x10]
mov byte [ecx + esi + 0xd], dl
movzx edx, byte [ecx + esi + 0xb]
mov dword [esp + 0x14], edx
movzx edx, byte [ecx + esi + 0xc]
mov byte [ecx + esi + 0xb], dl
mov edx, dword [esp + 0x14]
mov byte [ecx + esi + 0xc], dl
mov edx, dword [esp + 8]
lea ebx, [eax + edx*8]
add ebx, 0x10
cmp edx, dword [edi + 0x14]
jl 0x528f13
mov esi, dword [esp + 0x28]
mov ecx, dword [edi]
cmp ecx, 0x20
jae 0x52890d
mov edx, 1
shl edx, cl
test edx, 0x280a000
je 0x52890d
movsd xmm0, qword [edi + 0x40]
lea ecx, [ebx + esi]
movsd qword [ecx], xmm0
cmp dword [esp + 0x30], 0
je 0x529035
movzx eax, byte [esi + ebx]
movzx edx, byte [esi + ebx + 7]
mov byte [esi + ebx], dl
mov byte [esi + ebx + 7], al
movzx eax, byte [ecx + 1]
mov dword [esp + 8], eax
movzx eax, byte [esi + ebx + 6]
mov byte [ecx + 1], al
mov eax, dword [esp + 8]
mov byte [esi + ebx + 6], al
movzx eax, byte [ecx + 2]
mov dword [esp + 0xc], eax
movzx eax, byte [esi + ebx + 5]
mov byte [ecx + 2], al
mov eax, dword [esp + 0xc]
mov byte [esi + ebx + 5], al
movzx eax, byte [ecx + 3]
mov dword [esp + 0x10], eax
movzx eax, byte [esi + ebx + 4]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x10]
mov byte [esi + ebx + 4], cl
movsd xmm0, qword [edi + 0x60]
mov eax, ebx
movsd qword [ebx + esi + 8], xmm0
je 0x5290a4
movzx edx, byte [esi + ebx + 8]
movzx ecx, byte [esi + ebx + 0xf]
mov byte [esi + ebx + 8], cl
mov byte [esi + ebx + 0xf], dl
movzx edx, byte [esi + ebx + 9]
mov dword [esp + 8], edx
movzx edx, byte [esi + ebx + 0xe]
mov byte [esi + ebx + 9], dl
mov edx, dword [esp + 8]
mov byte [esi + ebx + 0xe], dl
movzx edx, byte [esi + ebx + 0xa]
mov dword [esp + 0xc], edx
movzx edx, byte [esi + ebx + 0xd]
mov byte [esi + ebx + 0xa], dl
mov edx, dword [esp + 0xc]
mov byte [esi + ebx + 0xd], dl
movzx edx, byte [esi + ebx + 0xb]
mov dword [esp + 0x10], edx
movzx edx, byte [esi + ebx + 0xc]
mov byte [esi + ebx + 0xb], dl
mov edx, dword [esp + 0x10]
mov byte [esi + ebx + 0xc], dl
add ebx, 0x10
cmp dword [edi + 0x14], 0
jle 0x52890d
xor edx, edx
lea ecx, [esi + eax]
mov dword [esp + 0x28], esi
mov ebx, dword [edi + 0x24]
inc edx
lea esi, [edx*8]
movsd xmm0, qword [ebx + edx*8 - 8]
movsd qword [ecx + edx*8 + 8], xmm0
cmp dword [esp + 0x30], 0
je 0x529140
movzx ebx, byte [ecx + esi + 0xf]
mov dword [esp + 8], edx
movzx edx, byte [ecx + esi + 8]
mov byte [ecx + esi + 8], bl
mov byte [ecx + esi + 0xf], dl
movzx edx, byte [ecx + esi + 9]
mov dword [esp + 0xc], edx
movzx edx, byte [ecx + esi + 0xe]
mov byte [ecx + esi + 9], dl
mov edx, dword [esp + 0xc]
mov byte [ecx + esi + 0xe], dl
movzx edx, byte [ecx + esi + 0xa]
mov dword [esp + 0x10], edx
movzx edx, byte [ecx + esi + 0xd]
mov byte [ecx + esi + 0xa], dl
mov edx, dword [esp + 0x10]
mov byte [ecx + esi + 0xd], dl
movzx edx, byte [ecx + esi + 0xb]
mov dword [esp + 0x14], edx
movzx edx, byte [ecx + esi + 0xc]
mov byte [ecx + esi + 0xb], dl
mov edx, dword [esp + 0x14]
mov byte [ecx + esi + 0xc], dl
mov edx, dword [esp + 8]
lea ebx, [eax + edx*8]
add ebx, 0x10
cmp edx, dword [edi + 0x14]
jl 0x5290ba
mov esi, dword [esp + 0x28]
jmp 0x52890d
mov ecx, dword [edi]
jmp 0x528fae
lea edx, [ebx + esi]
shl ecx, 2
push ecx
push dword [edi + 0x10]
push edx
call fcn.007666b0
add esp, 0xc
mov edx, dword [edi + 8]
test edx, edx
jle 0x528cd8
mov dword [esp + 8], 0
lea ecx, [esi + ebx]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 8]
inc edi
test ebx, ebx
jne 0x5291aa
lea eax, [esi + edi*4]
cmp edi, edx
jl 0x52919c
jmp 0x5291e6
movzx edx, byte [ecx + edi*4 - 4]
movzx eax, byte [ecx + edi*4 - 1]
mov byte [ecx + edi*4 - 4], al
mov eax, edx
mov byte [ecx + edi*4 - 1], al
movzx eax, byte [ecx + edi*4 - 3]
mov dword [esp + 8], eax
movzx eax, byte [ecx + edi*4 - 2]
mov byte [ecx + edi*4 - 3], al
mov eax, dword [esp + 8]
mov byte [ecx + edi*4 - 2], al
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 8]
lea eax, [esi + edi*4]
cmp edi, edx
jl 0x52919c
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebx, eax
jmp 0x528cd8
mov ebx, 0x34
jmp 0x528ccb
mov eax, dword [edi + 0x20]
movsd xmm0, qword [eax]
movsd qword [esi + 0x1c], xmm0
cmp dword [esp + 0x30], 0
je 0x52924a
movzx edx, byte [esi + 0x1c]
movzx eax, byte [esi + 0x23]
movzx ebx, byte [esi + 0x1d]
movzx ecx, byte [esi + 0x22]
mov byte [esi + 0x1c], al
movzx eax, byte [esi + 0x21]
mov byte [esi + 0x23], dl
movzx edx, byte [esi + 0x1e]
mov byte [esi + 0x1d], cl
movzx ecx, byte [esi + 0x20]
mov byte [esi + 0x22], bl
movzx ebx, byte [esi + 0x1f]
mov byte [esi + 0x1e], al
mov byte [esi + 0x21], dl
mov byte [esi + 0x1f], cl
mov byte [esi + 0x20], bl
mov edx, dword [edi]
mov ebx, 0x24
jmp 0x52886e
movsd xmm1, qword [eax + 0x40]
ucomisd xmm1, xmm2
jne 0x528a67
jp 0x528a67
movsd xmm1, qword [eax + 0x28]
ucomisd xmm1, xmm2
jne 0x528a67
jp 0x528a67
movsd xmm1, qword [eax + 0x48]
ucomisd xmm1, xmm2
jne 0x528a67
jp 0x528a67
cmp dword [edi], 0
je 0x528a67
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov ebx, dword [edi + 0x24]
movsd xmm0, qword [eax]
mov esi, dword [esp + 0x24]
movsd qword [esi + 0x40], xmm0
movsd qword [esi + 0x20], xmm0
movsd xmm1, qword [edx]
movsd qword [esi + 0x48], xmm1
movsd qword [esi + 0x28], xmm1
movsd xmm2, qword [ecx]
movsd qword [esi + 0x50], xmm2
movsd qword [esi + 0x30], xmm2
movsd xmm3, qword [ebx]
movsd qword [esi + 0x58], xmm3
movsd qword [esi + 0x38], xmm3
jmp 0x528a67
push edx
call fcn.0074334f
pop ecx
jmp 0x528386
push edx
call fcn.0074334f
pop ecx
jmp 0x528364
push ebp
mov ebp, esp
and esp, 0xfffffff8
push edi
push esi
push ebx
sub esp, 0x3c
mov esi, ecx
mov dword [esp + 0x28], eax
mov dword [eax + 0x60], 1
mov edx, dword [eax + 0x14]
cmp edx, dword [eax + 0x10]
jg 0x529392
mov dword [esp + 8], edx
fild dword [esp + 8]
fmul qword [0x78d040]
fadd qword [0x78d038]
call fcn.00766870
mov edx, dword [esp + 0x28]
mov dword [edx + 0x14], eax
mov edx, dword [edx + 0x18]
shl eax, 2
test edx, edx
je 0x52a3dd
push eax
push edx
call fcn.007436c1
add esp, 8
mov edx, dword [esp + 0x28]
mov dword [edx + 0x18], eax
mov eax, dword [edx + 0x1c]
mov edx, dword [edx + 0x14]
shl edx, 2
test eax, eax
je 0x52a3d1
push edx
push eax
call fcn.007436c1
add esp, 8
mov edx, dword [esp + 0x28]
mov dword [edx + 0x1c], eax
mov eax, dword [esi + 0x14]
shl eax, 5
mov edx, dword [esi + 8]
lea ecx, [eax + edx*8 + 0x80]
push ecx
call fcn.0074334f
pop ecx
mov edi, eax
mov eax, dword [esi]
cmp eax, 0x1f
ja case.0x5293bd.2
mov eax, dword [eax*4 + 0x789560]
jmp eax
mov ecx, dword [esi + 0x14]
mov dword [esp + 8], ecx
lea eax, [edi + 0xc]
mov edx, esi
call fcn.0052a3f0
mov eax, dword [0x84f850]
mov dword [esp + 0x34], eax
test eax, eax
je 0x529401
movzx edx, byte [esp + 8]
movzx eax, byte [esp + 0xb]
mov byte [esp + 8], al
mov byte [esp + 0xb], dl
movzx ebx, byte [esp + 9]
movzx ecx, byte [esp + 0xa]
mov byte [esp + 9], cl
mov byte [esp + 0xa], bl
mov eax, dword [esp + 8]
mov dword [edi + 0x2c], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x18], eax
test eax, eax
jle 0x529527
xor ecx, ecx
inc ecx
mov ebx, ecx
shl ebx, 4
mov edx, dword [esi + 0x18]
mov eax, dword [edx + ecx*8 - 8]
mov dword [edi + ebx + 0x20], eax
mov eax, dword [edx + ecx*8 - 4]
mov dword [edi + ebx + 0x24], eax
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + ecx*8 - 8]
mov dword [edi + ebx + 0x28], eax
mov eax, dword [edx + ecx*8 - 4]
mov dword [edi + ebx + 0x2c], eax
cmp dword [esp + 0x34], 0
je 0x529518
movzx eax, byte [ebx + edi + 0x20]
movzx edx, byte [ebx + edi + 0x27]
mov byte [ebx + edi + 0x20], dl
mov byte [ebx + edi + 0x27], al
movzx eax, byte [ebx + edi + 0x21]
mov dword [esp + 8], eax
movzx eax, byte [ebx + edi + 0x26]
mov byte [ebx + edi + 0x21], al
mov eax, dword [esp + 8]
mov byte [ebx + edi + 0x26], al
movzx eax, byte [ebx + edi + 0x22]
mov dword [esp + 0xc], eax
movzx eax, byte [ebx + edi + 0x25]
mov byte [ebx + edi + 0x22], al
mov eax, dword [esp + 0xc]
mov byte [ebx + edi + 0x25], al
movzx eax, byte [ebx + edi + 0x23]
mov dword [esp + 0x10], eax
movzx eax, byte [ebx + edi + 0x24]
mov byte [ebx + edi + 0x23], al
mov eax, dword [esp + 0x10]
mov byte [ebx + edi + 0x24], al
movzx eax, byte [ebx + edi + 0x28]
mov dword [esp + 0x14], eax
movzx eax, byte [ebx + edi + 0x2f]
mov byte [ebx + edi + 0x28], al
mov eax, dword [esp + 0x14]
mov byte [ebx + edi + 0x2f], al
movzx eax, byte [ebx + edi + 0x29]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebx + edi + 0x2e]
mov byte [ebx + edi + 0x29], al
mov eax, dword [esp + 0x1c]
mov byte [ebx + edi + 0x2e], al
movzx eax, byte [ebx + edi + 0x2a]
mov dword [esp + 0x20], eax
movzx eax, byte [ebx + edi + 0x2d]
mov byte [ebx + edi + 0x2a], al
mov eax, dword [esp + 0x20]
mov byte [ebx + edi + 0x2d], al
movzx eax, byte [ebx + edi + 0x2b]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + edi + 0x2c]
mov byte [ebx + edi + 0x2b], al
mov eax, dword [esp + 0x24]
mov byte [ebx + edi + 0x2c], al
mov eax, dword [esi + 0x14]
cmp ecx, eax
jl 0x529419
mov dword [esp + 0x18], eax
shl eax, 4
mov dword [esp + 0x18], eax
lea ebx, [eax + 0x30]
mov eax, dword [esi]
cmp eax, 0x12
je 0x529be5
cmp eax, 0x1c
je 0x52954a
cmp eax, 0x12
jne 0x52992c
lea ecx, [ebx + edi]
mov eax, dword [esi + 0x40]
mov dword [ecx], eax
mov eax, dword [esi + 0x44]
mov dword [ecx + 4], eax
cmp dword [esp + 0x34], 0
je 0x5295b7
movzx eax, byte [edi + ebx]
movzx edx, byte [edi + ebx + 7]
mov byte [edi + ebx], dl
mov byte [edi + ebx + 7], al
movzx eax, byte [ecx + 1]
mov dword [esp + 8], eax
movzx eax, byte [edi + ebx + 6]
mov byte [ecx + 1], al
mov eax, dword [esp + 8]
mov byte [edi + ebx + 6], al
movzx eax, byte [ecx + 2]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + ebx + 5]
mov byte [ecx + 2], al
mov eax, dword [esp + 0xc]
mov byte [edi + ebx + 5], al
movzx eax, byte [ecx + 3]
mov dword [esp + 0x10], eax
movzx eax, byte [edi + ebx + 4]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x10]
mov byte [edi + ebx + 4], cl
mov ecx, ebx
mov eax, dword [esi + 0x60]
mov dword [ebx + edi + 8], eax
mov eax, dword [esi + 0x64]
mov dword [ebx + edi + 0xc], eax
je 0x529629
movzx eax, byte [edi + ebx + 8]
movzx edx, byte [edi + ebx + 0xf]
mov byte [edi + ebx + 8], dl
mov byte [edi + ebx + 0xf], al
movzx eax, byte [edi + ebx + 9]
mov dword [esp + 8], eax
movzx eax, byte [edi + ebx + 0xe]
mov byte [edi + ebx + 9], al
mov eax, dword [esp + 8]
mov byte [edi + ebx + 0xe], al
movzx eax, byte [edi + ebx + 0xa]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + ebx + 0xd]
mov byte [edi + ebx + 0xa], al
mov eax, dword [esp + 0xc]
mov byte [edi + ebx + 0xd], al
movzx eax, byte [edi + ebx + 0xb]
mov dword [esp + 0x10], eax
movzx eax, byte [edi + ebx + 0xc]
mov byte [edi + ebx + 0xb], al
mov eax, dword [esp + 0x10]
mov byte [edi + ebx + 0xc], al
add ebx, 0x10
cmp dword [esi + 0x14], 0
jle 0x52992c
xor eax, eax
lea edx, [edi + ecx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edi
inc eax
lea edi, [eax*8]
mov ebx, dword [esi + 0x24]
mov ecx, dword [ebx + eax*8 - 8]
mov dword [edx + eax*8 + 8], ecx
mov ecx, dword [ebx + eax*8 - 4]
mov dword [edx + eax*8 + 0xc], ecx
cmp dword [esp + 0x34], 0
je 0x5296c7
movzx ecx, byte [edx + edi + 8]
movzx ebx, byte [edx + edi + 0xf]
mov byte [edx + edi + 8], bl
mov ebx, ecx
mov byte [edx + edi + 0xf], bl
movzx ebx, byte [edx + edi + 9]
mov dword [esp + 8], ebx
movzx ebx, byte [edx + edi + 0xe]
mov byte [edx + edi + 9], bl
mov ebx, dword [esp + 8]
mov byte [edx + edi + 0xe], bl
movzx ebx, byte [edx + edi + 0xa]
mov dword [esp + 0xc], ebx
movzx ebx, byte [edx + edi + 0xd]
mov byte [edx + edi + 0xa], bl
mov ebx, dword [esp + 0xc]
mov byte [edx + edi + 0xd], bl
movzx ebx, byte [edx + edi + 0xb]
mov dword [esp + 0x10], ebx
movzx ebx, byte [edx + edi + 0xc]
mov byte [edx + edi + 0xb], bl
mov ebx, dword [esp + 0x10]
mov byte [edx + edi + 0xc], bl
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + eax*8]
add ebx, 0x10
cmp eax, dword [esi + 0x14]
jl 0x529643
mov edi, dword [esp + 0x2c]
jmp 0x52992c
mov ecx, dword [esi + 0x14]
mov dword [esp + 8], ecx
mov ebx, dword [esi + 8]
mov dword [esp + 0xc], ebx
lea eax, [edi + 0xc]
mov edx, esi
call fcn.0052a3f0
mov eax, dword [0x84f850]
mov dword [esp + 0x34], eax
test eax, eax
je 0x529750
movzx edx, byte [esp + 8]
movzx eax, byte [esp + 0xb]
mov byte [esp + 8], al
mov byte [esp + 0xb], dl
movzx ebx, byte [esp + 9]
movzx ecx, byte [esp + 0xa]
mov byte [esp + 9], cl
mov byte [esp + 0xa], bl
movzx edx, byte [esp + 0xc]
movzx eax, byte [esp + 0xf]
mov byte [esp + 0xc], al
mov byte [esp + 0xf], dl
movzx ebx, byte [esp + 0xd]
movzx ecx, byte [esp + 0xe]
mov byte [esp + 0xd], cl
mov byte [esp + 0xe], bl
mov eax, dword [esp + 8]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0xc]
mov dword [edi + 0x2c], eax
lea edx, [edi + 0x34]
mov eax, dword [esi + 8]
shl eax, 2
push eax
push dword [esi + 0xc]
push edx
call fcn.007666b0
add esp, 0xc
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x52a2cc
xor eax, eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x34]
inc eax
test edx, edx
jne 0x5297a2
lea ebx, [eax*4 + 0x34]
cmp eax, ecx
jl 0x52978d
jmp 0x529d88
mov esi, dword [esp + 0x2c]
movzx ecx, byte [esi + eax*4 + 0x30]
movzx ebx, byte [esi + eax*4 + 0x33]
mov byte [esi + eax*4 + 0x30], bl
mov byte [esi + eax*4 + 0x33], cl
movzx ecx, byte [esi + eax*4 + 0x31]
movzx ebx, byte [esi + eax*4 + 0x32]
mov byte [esi + eax*4 + 0x31], bl
mov byte [esi + eax*4 + 0x32], cl
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 8]
lea ebx, [eax*4 + 0x34]
cmp eax, ecx
jl 0x52978d
jmp 0x52a2c1
mov edx, dword [esi + 0x18]
mov eax, dword [edx]
mov dword [edi + 0xc], eax
mov ecx, dword [edx + 4]
mov dword [edi + 0x10], ecx
mov edx, dword [esi + 0x1c]
mov eax, dword [edx]
mov dword [edi + 0x14], eax
mov ecx, dword [edx + 4]
mov dword [edi + 0x18], ecx
mov eax, dword [0x84f850]
mov dword [esp + 0x34], eax
test eax, eax
je 0x52987a
movzx edx, byte [edi + 0xc]
movzx eax, byte [edi + 0x13]
mov byte [edi + 0xc], al
mov byte [edi + 0x13], dl
movzx ebx, byte [edi + 0xd]
movzx ecx, byte [edi + 0x12]
mov byte [edi + 0xd], cl
mov byte [edi + 0x12], bl
movzx edx, byte [edi + 0xe]
movzx eax, byte [edi + 0x11]
mov byte [edi + 0xe], al
mov byte [edi + 0x11], dl
movzx ebx, byte [edi + 0xf]
movzx ecx, byte [edi + 0x10]
mov byte [edi + 0xf], cl
mov byte [edi + 0x10], bl
movzx edx, byte [edi + 0x14]
movzx eax, byte [edi + 0x1b]
mov byte [edi + 0x14], al
mov byte [edi + 0x1b], dl
movzx ebx, byte [edi + 0x15]
movzx ecx, byte [edi + 0x1a]
mov byte [edi + 0x15], cl
mov byte [edi + 0x1a], bl
movzx edx, byte [edi + 0x16]
movzx eax, byte [edi + 0x19]
mov byte [edi + 0x16], al
mov byte [edi + 0x19], dl
movzx ebx, byte [edi + 0x17]
movzx ecx, byte [edi + 0x18]
mov byte [edi + 0x17], cl
mov byte [edi + 0x18], bl
mov eax, dword [esi]
cmp eax, 0xb
je 0x52a2d6
mov ebx, 0x1c
cmp eax, 0x15
je 0x529898
cmp eax, 0xb
jne 0x52992c
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
mov dword [edi + ebx], eax
mov eax, dword [ecx + 4]
mov dword [edi + ebx + 4], eax
cmp dword [esp + 0x34], 0
je 0x52990c
movzx eax, byte [edi + ebx]
movzx ecx, byte [edi + ebx + 7]
mov byte [edi + ebx], cl
mov byte [edi + ebx + 7], al
movzx eax, byte [edi + ebx + 1]
mov dword [esp + 8], eax
movzx eax, byte [edi + ebx + 6]
mov byte [edi + ebx + 1], al
mov eax, dword [esp + 8]
mov byte [edi + ebx + 6], al
movzx eax, byte [edi + ebx + 2]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + ebx + 5]
mov byte [edi + ebx + 2], al
mov eax, dword [esp + 0xc]
mov byte [edi + ebx + 5], al
movzx eax, byte [edi + ebx + 3]
mov dword [esp + 0x10], eax
movzx eax, byte [edi + ebx + 4]
mov byte [edi + ebx + 3], al
mov eax, dword [esp + 0x10]
mov byte [edi + ebx + 4], al
add ebx, 8
jmp 0x52992c
mov eax, dword [0x84f850]
mov dword [esp + 0x34], eax
mov ebx, 0xc
jmp 0x52992c
mov eax, dword [0x84f850]
mov dword [esp + 0x34], eax
xor ebx, ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x24], ecx
lea edx, [ecx + 1]
mov dword [eax + 0x10], edx
mov esi, dword [eax + 0xc]
mov dword [esp + 0x10], esi
mov edi, dword [eax + 0x18]
mov dword [edi + ecx*4], esi
lea esi, [ebx - 8]
mov dword [esp + 0x14], esi
mov edi, dword [eax + 0x1c]
mov dword [edi + ecx*4], esi
add dword [eax + 0xc], ebx
mov dword [esp + 0xc], edx
cmp dword [esp + 0x34], 0
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
jne 0x5299a1
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0xf]
mov byte [esp + 0xc], cl
mov byte [esp + 0xf], al
movzx eax, byte [esp + 0xd]
mov dword [esp + 8], eax
movzx eax, byte [esp + 0xe]
mov byte [esp + 0xd], al
mov eax, dword [esp + 8]
mov byte [esp + 0xe], al
mov eax, dword [esp + 0xc]
mov dword [edi], eax
mov eax, dword [esp + 0x14]
shr eax, 0x1f
lea ecx, [ebx + eax - 8]
sar ecx, 1
mov dword [esp + 0xc], ecx
cmp dword [esp + 0x34], 0
jne 0x5299eb
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0xf]
mov byte [esp + 0xc], cl
mov byte [esp + 0xf], al
movzx eax, byte [esp + 0xd]
mov dword [esp + 8], eax
movzx eax, byte [esp + 0xe]
mov byte [esp + 0xd], al
mov eax, dword [esp + 8]
mov byte [esp + 0xe], al
mov eax, dword [esp + 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x34], 0
je 0x529a2b
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0xf]
mov byte [esp + 0xc], cl
mov byte [esp + 0xf], al
movzx eax, byte [esp + 0xd]
mov dword [esp + 8], eax
movzx eax, byte [esp + 0xe]
mov byte [esp + 0xd], al
mov eax, dword [esp + 8]
mov byte [esp + 0xe], al
mov eax, dword [esp + 0xc]
mov dword [edi + 8], eax
push 0
push dword [esp + 0x14]
mov eax, dword [esp + 0x30]
push dword [eax]
call fcn.0074327b
add esp, 0xc
test eax, eax
jne 0x529bc3
mov eax, dword [esp + 0x28]
push dword [eax]
push 1
push ebx
push edi
call fcn.00742cfc
add esp, 0x10
cmp eax, 1
jb 0x529bc3
push edi
call fcn.00743035
pop ecx
mov edx, dword [esp + 0x28]
fld qword [edx + 0x20]
fldz
fucom st(1)
fnstsw ax
sahf
jp 0x529a86
je 0x52a32f
fstp st(0)
mov eax, dword [esi + 0x14]
test eax, eax
jle 0x52a3e9
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 8], edx
mov ebx, dword [esi + 0x20]
mov edi, dword [esi + 0x24]
xor edx, edx
mov esi, dword [esp + 0x28]
fld qword [esi + 0x28]
fld qword [esi + 0x30]
fld qword [esi + 0x38]
fld qword [esi + 0x40]
fld qword [esi + 0x48]
fld qword [esi + 0x50]
fld qword [esi + 0x58]
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], eax
fxch st(4)
fstp qword [esp + 0x10]
fxch st(4)
fstp qword [esp + 0x18]
mov edi, dword [esp + 8]
fld qword [ecx + edx*8]
fcom st(6)
fnstsw ax
sahf
ja 0x529ae2
fst st(6)
fstp st(0)
fxch st(5)
fst qword [esi + 0x20]
fld qword [edi + edx*8]
fcom st(5)
fnstsw ax
sahf
ja 0x529af5
fst st(5)
fstp st(0)
fxch st(4)
fst qword [esi + 0x28]
fld qword [ebx + edx*8]
fld qword [esp + 0x18]
fcom st(1)
fnstsw ax
sahf
fxch st(1)
jp 0x529b0e
jb 0x529b10
fst st(1)
fstp st(0)
fst qword [esp + 0x18]
fstp qword [esi + 0x30]
mov eax, dword [esp + 0x20]
fld qword [eax + edx*8]
fld qword [esp + 0x10]
fcom st(1)
fnstsw ax
sahf
fxch st(1)
jp 0x529b2f
jb 0x529b31
fst st(1)
fstp st(0)
fst qword [esp + 0x10]
fstp qword [esi + 0x38]
fld qword [ecx + edx*8]
fcom st(2)
fnstsw ax
sahf
jp 0x529b46
jb 0x529b48
fst st(2)
fstp st(0)
fxch st(1)
fst qword [esi + 0x40]
fld qword [edi + edx*8]
fcom st(6)
fnstsw ax
sahf
jp 0x529b5b
jb 0x529b5d
fst st(6)
fstp st(0)
fxch st(5)
fst qword [esi + 0x48]
fld qword [ebx + edx*8]
fcom st(4)
fnstsw ax
sahf
jp 0x529b70
jb 0x529b72
fst st(4)
fstp st(0)
fxch st(3)
fst qword [esi + 0x50]
mov eax, dword [esp + 0x20]
fld qword [eax + edx*8]
fcom st(3)
fnstsw ax
sahf
jp 0x529b89
jb 0x529b8b
fst st(3)
fstp st(0)
fxch st(2)
fst qword [esi + 0x58]
inc edx
cmp edx, dword [esp + 0xc]
fxch st(2)
fxch st(3)
fxch st(5)
fxch st(1)
fxch st(4)
fxch st(5)
jl 0x529ad6
fstp st(2)
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x24]
add esp, 0x3c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push str.Error_in_fseek___or_fwrite__._n
call fcn.00744945
push edi
call fcn.00743035
add esp, 8
mov eax, 0xffffffff
add esp, 0x3c
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x38]
mov edx, dword [esp + 0x18]
mov dword [edi + edx + 0x30], eax
mov ecx, dword [esi + 0x3c]
mov dword [edi + edx + 0x34], ecx
cmp dword [esp + 0x34], 0
je 0x529c60
mov ecx, edx
movzx eax, byte [ecx + edi + 0x30]
movzx edx, byte [ecx + edi + 0x37]
mov byte [ecx + edi + 0x30], dl
mov byte [ecx + edi + 0x37], al
movzx eax, byte [ecx + edi + 0x31]
mov dword [esp + 8], eax
movzx eax, byte [ecx + edi + 0x36]
mov byte [ecx + edi + 0x31], al
mov eax, dword [esp + 8]
mov byte [ecx + edi + 0x36], al
movzx eax, byte [ecx + edi + 0x32]
mov dword [esp + 0xc], eax
movzx eax, byte [ecx + edi + 0x35]
mov byte [ecx + edi + 0x32], al
mov eax, dword [esp + 0xc]
mov byte [ecx + edi + 0x35], al
movzx eax, byte [ecx + edi + 0x33]
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + edi + 0x34]
mov byte [ecx + edi + 0x33], al
mov eax, dword [esp + 0x10]
mov byte [ecx + edi + 0x34], al
mov dword [esp + 0x14], ebx
mov eax, dword [esi + 0x58]
mov ecx, dword [esp + 0x18]
mov dword [edi + ecx + 0x38], eax
mov edx, dword [esi + 0x5c]
mov dword [edi + ecx + 0x3c], edx
je 0x529cc6
movzx ebx, byte [ecx + edi + 0x38]
movzx eax, byte [ecx + edi + 0x3f]
mov byte [ecx + edi + 0x38], al
mov edx, ebx
mov byte [ecx + edi + 0x3f], dl
movzx ebx, byte [ecx + edi + 0x39]
movzx eax, byte [ecx + edi + 0x3e]
mov byte [ecx + edi + 0x39], al
mov edx, ebx
mov byte [ecx + edi + 0x3e], dl
movzx ebx, byte [ecx + edi + 0x3a]
movzx eax, byte [ecx + edi + 0x3d]
mov byte [ecx + edi + 0x3a], al
mov edx, ebx
mov byte [ecx + edi + 0x3d], dl
movzx eax, byte [ecx + edi + 0x3b]
movzx edx, byte [ecx + edi + 0x3c]
mov byte [ecx + edi + 0x3b], dl
mov byte [ecx + edi + 0x3c], al
mov eax, ecx
lea ebx, [eax + 0x40]
cmp dword [esi + 0x14], 0
jle 0x529d81
xor edx, edx
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x2c], edi
inc edx
lea edi, [edx*8]
mov ebx, dword [esi + 0x20]
mov ecx, dword [ebx + edx*8 - 8]
mov dword [eax + edx*8 + 8], ecx
mov ecx, dword [ebx + edx*8 - 4]
mov dword [eax + edx*8 + 0xc], ecx
cmp dword [esp + 0x34], 0
je 0x529d63
movzx ecx, byte [eax + edi + 8]
movzx ebx, byte [eax + edi + 0xf]
mov byte [eax + edi + 8], bl
mov byte [eax + edi + 0xf], cl
movzx ecx, byte [eax + edi + 9]
mov dword [esp + 8], ecx
movzx ecx, byte [eax + edi + 0xe]
mov byte [eax + edi + 9], cl
mov ecx, dword [esp + 8]
mov byte [eax + edi + 0xe], cl
movzx ecx, byte [eax + edi + 0xa]
mov dword [esp + 0xc], ecx
movzx ecx, byte [eax + edi + 0xd]
mov byte [eax + edi + 0xa], cl
mov ecx, dword [esp + 0xc]
mov byte [eax + edi + 0xd], cl
movzx ecx, byte [eax + edi + 0xb]
mov dword [esp + 0x10], ecx
movzx ecx, byte [eax + edi + 0xc]
mov byte [eax + edi + 0xb], cl
mov ecx, dword [esp + 0x10]
mov byte [eax + edi + 0xc], cl
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + edx*8]
add ebx, 0x10
cmp edx, dword [esi + 0x14]
jl 0x529ce1
mov edi, dword [esp + 0x2c]
mov eax, dword [esi]
jmp 0x52953c
mov eax, dword [esi]
jmp 0x52953c
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov dword [esp + 8], ebx
cmp dword [esi], 0x1f
je 0x52a238
mov edx, ebx
cmp dword [esi + 0x14], 0
jle 0x529ece
xor eax, eax
lea ecx, [edi + ebx]
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], edi
inc eax
mov ebx, eax
shl ebx, 4
mov edx, dword [esi + 0x18]
mov edi, dword [edx + eax*8 - 8]
mov dword [ebx + ecx - 0x10], edi
mov edi, dword [edx + eax*8 - 4]
mov dword [ebx + ecx - 0xc], edi
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + eax*8 - 8]
mov dword [ebx + ecx - 8], edi
mov edi, dword [edx + eax*8 - 4]
mov dword [ebx + ecx - 4], edi
cmp dword [esp + 0x34], 0
je 0x529ebd
movzx edx, byte [ecx + ebx - 0x10]
mov dword [esp + 8], edx
movzx edx, byte [ecx + ebx - 9]
mov byte [ecx + ebx - 0x10], dl
mov edx, dword [esp + 8]
mov byte [ecx + ebx - 9], dl
movzx edx, byte [ecx + ebx - 0xf]
mov dword [esp + 0xc], edx
movzx edx, byte [ecx + ebx - 0xa]
mov byte [ecx + ebx - 0xf], dl
mov edx, dword [esp + 0xc]
mov byte [ecx + ebx - 0xa], dl
movzx edx, byte [ecx + ebx - 0xe]
mov dword [esp + 0x10], edx
movzx edx, byte [ecx + ebx - 0xb]
mov byte [ecx + ebx - 0xe], dl
mov edx, dword [esp + 0x10]
mov byte [ecx + ebx - 0xb], dl
movzx edx, byte [ecx + ebx - 0xd]
mov dword [esp + 0x14], edx
movzx edx, byte [ecx + ebx - 0xc]
mov byte [ecx + ebx - 0xd], dl
mov edx, dword [esp + 0x14]
mov byte [ecx + ebx - 0xc], dl
movzx edx, byte [ecx + ebx - 8]
mov dword [esp + 0x18], edx
movzx edx, byte [ecx + ebx - 1]
mov byte [ecx + ebx - 8], dl
mov edx, dword [esp + 0x18]
mov byte [ecx + ebx - 1], dl
movzx edx, byte [ecx + ebx - 7]
mov dword [esp + 0x1c], edx
movzx edx, byte [ecx + ebx - 2]
mov byte [ecx + ebx - 7], dl
mov edx, dword [esp + 0x1c]
mov byte [ecx + ebx - 2], dl
movzx edx, byte [ecx + ebx - 6]
mov dword [esp + 0x20], edx
movzx edx, byte [ecx + ebx - 3]
mov byte [ecx + ebx - 6], dl
mov edx, dword [esp + 0x20]
mov byte [ecx + ebx - 3], dl
movzx edx, byte [ecx + ebx - 5]
mov dword [esp + 0x24], edx
movzx edx, byte [ecx + ebx - 4]
mov byte [ecx + ebx - 5], dl
mov edx, dword [esp + 0x24]
mov byte [ecx + ebx - 4], dl
add ebx, dword [esp + 0x38]
cmp eax, dword [esi + 0x14]
jl 0x529db6
mov edi, dword [esp + 0x2c]
mov ecx, dword [esi]
cmp ecx, 0x20
jae 0x52992c
mov eax, 1
shl eax, cl
test eax, 0x8000a000
je 0x52a088
lea ecx, [ebx + edi]
mov eax, dword [esi + 0x38]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c]
mov dword [ecx + 4], eax
cmp dword [esp + 0x34], 0
je 0x529f58
movzx eax, byte [edi + ebx]
movzx edx, byte [edi + ebx + 7]
mov byte [edi + ebx], dl
mov byte [edi + ebx + 7], al
movzx eax, byte [ecx + 1]
mov dword [esp + 8], eax
movzx eax, byte [edi + ebx + 6]
mov byte [ecx + 1], al
mov eax, dword [esp + 8]
mov byte [edi + ebx + 6], al
movzx eax, byte [ecx + 2]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + ebx + 5]
mov byte [ecx + 2], al
mov eax, dword [esp + 0xc]
mov byte [edi + ebx + 5], al
movzx eax, byte [ecx + 3]
mov dword [esp + 0x10], eax
movzx eax, byte [edi + ebx + 4]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x10]
mov byte [edi + ebx + 4], cl
mov ecx, ebx
mov eax, dword [esi + 0x58]
mov dword [ebx + edi + 8], eax
mov eax, dword [esi + 0x5c]
mov dword [ebx + edi + 0xc], eax
je 0x529fca
movzx eax, byte [edi + ebx + 8]
movzx edx, byte [edi + ebx + 0xf]
mov byte [edi + ebx + 8], dl
mov byte [edi + ebx + 0xf], al
movzx eax, byte [edi + ebx + 9]
mov dword [esp + 8], eax
movzx eax, byte [edi + ebx + 0xe]
mov byte [edi + ebx + 9], al
mov eax, dword [esp + 8]
mov byte [edi + ebx + 0xe], al
movzx eax, byte [edi + ebx + 0xa]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + ebx + 0xd]
mov byte [edi + ebx + 0xa], al
mov eax, dword [esp + 0xc]
mov byte [edi + ebx + 0xd], al
movzx eax, byte [edi + ebx + 0xb]
mov dword [esp + 0x10], eax
movzx eax, byte [edi + ebx + 0xc]
mov byte [edi + ebx + 0xb], al
mov eax, dword [esp + 0x10]
mov byte [edi + ebx + 0xc], al
add ebx, 0x10
cmp dword [esi + 0x14], 0
jle 0x52a231
xor eax, eax
lea edx, [edi + ecx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edi
inc eax
lea edi, [eax*8]
mov ebx, dword [esi + 0x20]
mov ecx, dword [ebx + eax*8 - 8]
mov dword [edx + eax*8 + 8], ecx
mov ecx, dword [ebx + eax*8 - 4]
mov dword [edx + eax*8 + 0xc], ecx
cmp dword [esp + 0x34], 0
je 0x52a066
movzx ecx, byte [edx + edi + 8]
movzx ebx, byte [edx + edi + 0xf]
mov byte [edx + edi + 8], bl
mov byte [edx + edi + 0xf], cl
movzx ecx, byte [edx + edi + 9]
mov dword [esp + 8], ecx
movzx ecx, byte [edx + edi + 0xe]
mov byte [edx + edi + 9], cl
mov ecx, dword [esp + 8]
mov byte [edx + edi + 0xe], cl
movzx ecx, byte [edx + edi + 0xa]
mov dword [esp + 0xc], ecx
movzx ecx, byte [edx + edi + 0xd]
mov byte [edx + edi + 0xa], cl
mov ecx, dword [esp + 0xc]
mov byte [edx + edi + 0xd], cl
movzx ecx, byte [edx + edi + 0xb]
mov dword [esp + 0x10], ecx
movzx ecx, byte [edx + edi + 0xc]
mov byte [edx + edi + 0xb], cl
mov ecx, dword [esp + 0x10]
mov byte [edx + edi + 0xc], cl
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + eax*8]
add ebx, 0x10
cmp eax, dword [esi + 0x14]
jl 0x529fe4
mov edi, dword [esp + 0x2c]
mov ecx, dword [esi]
cmp ecx, 0x20
jae 0x52992c
mov eax, 1
shl eax, cl
test eax, 0x280a000
je 0x52992c
lea ecx, [ebx + edi]
mov eax, dword [esi + 0x40]
mov dword [ecx], eax
mov eax, dword [esi + 0x44]
mov dword [ecx + 4], eax
cmp dword [esp + 0x34], 0
je 0x52a107
movzx eax, byte [edi + ebx]
movzx edx, byte [edi + ebx + 7]
mov byte [edi + ebx], dl
mov byte [edi + ebx + 7], al
movzx eax, byte [ecx + 1]
mov dword [esp + 8], eax
movzx eax, byte [edi + ebx + 6]
mov byte [ecx + 1], al
mov eax, dword [esp + 8]
mov byte [edi + ebx + 6], al
movzx eax, byte [ecx + 2]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + ebx + 5]
mov byte [ecx + 2], al
mov eax, dword [esp + 0xc]
mov byte [edi + ebx + 5], al
movzx eax, byte [ecx + 3]
mov dword [esp + 0x10], eax
movzx eax, byte [edi + ebx + 4]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x10]
mov byte [edi + ebx + 4], cl
mov ecx, ebx
mov eax, dword [esi + 0x60]
mov dword [ebx + edi + 8], eax
mov eax, dword [esi + 0x64]
mov dword [ebx + edi + 0xc], eax
je 0x52a179
movzx eax, byte [edi + ebx + 8]
movzx edx, byte [edi + ebx + 0xf]
mov byte [edi + ebx + 8], dl
mov byte [edi + ebx + 0xf], al
movzx eax, byte [edi + ebx + 9]
mov dword [esp + 8], eax
movzx eax, byte [edi + ebx + 0xe]
mov byte [edi + ebx + 9], al
mov eax, dword [esp + 8]
mov byte [edi + ebx + 0xe], al
movzx eax, byte [edi + ebx + 0xa]
mov dword [esp + 0xc], eax
movzx eax, byte [edi + ebx + 0xd]
mov byte [edi + ebx + 0xa], al
mov eax, dword [esp + 0xc]
mov byte [edi + ebx + 0xd], al
movzx eax, byte [edi + ebx + 0xb]
mov dword [esp + 0x10], eax
movzx eax, byte [edi + ebx + 0xc]
mov byte [edi + ebx + 0xb], al
mov eax, dword [esp + 0x10]
mov byte [edi + ebx + 0xc], al
add ebx, 0x10
cmp dword [esi + 0x14], 0
jle 0x52992c
xor eax, eax
lea edx, [edi + ecx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], edi
inc eax
lea edi, [eax*8]
mov ebx, dword [esi + 0x24]
mov ecx, dword [ebx + eax*8 - 8]
mov dword [edx + eax*8 + 8], ecx
mov ecx, dword [ebx + eax*8 - 4]
mov dword [edx + eax*8 + 0xc], ecx
cmp dword [esp + 0x34], 0
je 0x52a215
movzx ecx, byte [edx + edi + 8]
movzx ebx, byte [edx + edi + 0xf]
mov byte [edx + edi + 8], bl
mov byte [edx + edi + 0xf], cl
movzx ecx, byte [edx + edi + 9]
mov dword [esp + 8], ecx
movzx ecx, byte [edx + edi + 0xe]
mov byte [edx + edi + 9], cl
mov ecx, dword [esp + 8]
mov byte [edx + edi + 0xe], cl
movzx ecx, byte [edx + edi + 0xa]
mov dword [esp + 0xc], ecx
movzx ecx, byte [edx + edi + 0xd]
mov byte [edx + edi + 0xa], cl
mov ecx, dword [esp + 0xc]
mov byte [edx + edi + 0xd], cl
movzx ecx, byte [edx + edi + 0xb]
mov dword [esp + 0x10], ecx
movzx ecx, byte [edx + edi + 0xc]
mov byte [edx + edi + 0xb], cl
mov ecx, dword [esp + 0x10]
mov byte [edx + edi + 0xc], cl
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + eax*8]
add ebx, 0x10
cmp eax, dword [esi + 0x14]
jl 0x52a193
mov edi, dword [esp + 0x2c]
jmp 0x52992c
mov ecx, dword [esi]
jmp 0x52a07f
lea eax, [ebx + edi]
shl ecx, 2
push ecx
push dword [esi + 0x10]
push eax
call fcn.007666b0
add esp, 0xc
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x529d9d
xor eax, eax
add ebx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x34]
inc eax
test edi, edi
jne 0x52a278
lea edx, [esi + eax*4]
cmp eax, ecx
jl 0x52a26a
jmp 0x52a2b2
movzx edx, byte [ebx + eax*4 - 4]
movzx ecx, byte [ebx + eax*4 - 1]
mov byte [ebx + eax*4 - 4], cl
mov byte [ebx + eax*4 - 1], dl
movzx edx, byte [ebx + eax*4 - 3]
mov dword [esp + 8], edx
movzx edx, byte [ebx + eax*4 - 2]
mov byte [ebx + eax*4 - 3], dl
mov edx, dword [esp + 8]
mov byte [ebx + eax*4 - 2], dl
mov edx, dword [esp + 0x30]
mov ecx, dword [edx + 8]
lea edx, [esi + eax*4]
cmp eax, ecx
jl 0x52a26a
mov ebx, edx
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
jmp 0x529d9d
mov edi, esi
mov esi, dword [esp + 0x30]
jmp 0x529d90
mov ebx, 0x34
jmp 0x529d90
mov edx, dword [esi + 0x20]
mov eax, dword [edx]
mov dword [edi + 0x1c], eax
mov ecx, dword [edx + 4]
mov dword [edi + 0x20], ecx
cmp dword [esp + 0x34], 0
je 0x52a323
movzx edx, byte [edi + 0x1c]
movzx eax, byte [edi + 0x23]
mov byte [edi + 0x1c], al
mov byte [edi + 0x23], dl
movzx ebx, byte [edi + 0x1d]
movzx ecx, byte [edi + 0x22]
mov byte [edi + 0x1d], cl
mov byte [edi + 0x22], bl
movzx edx, byte [edi + 0x1e]
movzx eax, byte [edi + 0x21]
mov byte [edi + 0x1e], al
mov byte [edi + 0x21], dl
movzx ebx, byte [edi + 0x1f]
movzx ecx, byte [edi + 0x20]
mov byte [edi + 0x1f], cl
mov byte [edi + 0x20], bl
mov eax, dword [esi]
mov ebx, 0x24
jmp 0x52988a
fld qword [edx + 0x40]
fucomp st(1)
fnstsw ax
sahf
jne 0x529a86
jp 0x529a86
fld qword [edx + 0x28]
fucomp st(1)
fnstsw ax
sahf
jne 0x529a86
jp 0x529a86
fld qword [edx + 0x48]
fucompp
fnstsw ax
sahf
jne 0x529a88
jp 0x529a88
cmp dword [esi], 0
je 0x529a88
fstp st(0)
mov edx, dword [esi + 0x18]
fld qword [edx]
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
mov eax, dword [esp + 0x28]
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ebx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ebx
mov edi, dword [esi + 0x1c]
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov dword [eax + 0x48], edx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov ebx, dword [esi + 0x20]
mov edi, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [eax + 0x50], edi
mov dword [eax + 0x54], edx
mov dword [eax + 0x30], edi
mov dword [eax + 0x34], edx
mov ecx, dword [esi + 0x24]
mov ebx, dword [ecx]
mov edi, dword [ecx + 4]
mov dword [eax + 0x58], ebx
mov dword [eax + 0x5c], edi
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], edi
jmp 0x529a88
push edx
call fcn.0074334f
pop ecx
jmp 0x52938b
push eax
call fcn.0074334f
pop ecx
jmp 0x529369
fstp st(0)
jmp 0x529bb5