Function at 0x52b360
Capabilities:
Write file on windows

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x52b390
test dword [0x87ed4c], 0xffffffff
jne 0x52b8e0
call fcn.007663a0
jmp fcn.0052b360
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x74
mov esi, eax
xor eax, eax
pxor xmm0, xmm0
pshufd xmm0, xmm0, 0
xor ebx, ebx
movdqa xmmword [esp + eax + 0x10], xmm0
movdqa xmmword [esp + eax + 0x20], xmm0
add eax, 0x20
cmp eax, 0x60
jb 0x52b3ab
mov edx, dword [esi + 0xc]
mov byte [esp + 0x70], bl
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov byte [esp + 0x71], bl
mov byte [esp + 0x72], bl
mov byte [esp + 0x73], bl
mov byte [esp + 0x12], 0x27
mov byte [esp + 0x13], 0xa
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
mov eax, dword [0x84f850]
mov dword [esp + 8], eax
test eax, eax
jne 0x52b422
movzx edx, byte [esp + 0x28]
movzx eax, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x2a]
mov byte [esp + 0x28], al
movzx eax, byte [esp + 0x29]
mov byte [esp + 0x2b], dl
mov byte [esp + 0x29], cl
mov byte [esp + 0x2a], al
mov dword [esp + 0xc], 0x3e8
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
je 0x52b458
movzx edx, byte [esp + 0x2c]
movzx eax, byte [esp + 0x2f]
movzx ecx, byte [esp + 0x2e]
mov byte [esp + 0x2c], al
movzx eax, byte [esp + 0x2d]
mov byte [esp + 0x2f], dl
mov byte [esp + 0x2d], cl
mov byte [esp + 0x2e], al
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x30], edx
je 0x52b48d
movzx edx, byte [esp + 0x30]
movzx eax, byte [esp + 0x33]
movzx ecx, byte [esp + 0x32]
mov byte [esp + 0x30], al
movzx eax, byte [esp + 0x31]
mov byte [esp + 0x33], dl
mov byte [esp + 0x31], cl
mov byte [esp + 0x32], al
movsd xmm0, qword [esi + 0x20]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x34], xmm1
je 0x52b4ec
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x3b]
movzx ecx, byte [esp + 0x3a]
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0x35]
mov byte [esp + 0x3b], dl
movzx edx, byte [esp + 0x39]
mov byte [esp + 0x35], cl
movzx ecx, byte [esp + 0x36]
mov byte [esp + 0x3a], al
movzx eax, byte [esp + 0x38]
mov byte [esp + 0x36], dl
movzx edx, byte [esp + 0x37]
mov byte [esp + 0x39], cl
mov byte [esp + 0x37], al
mov byte [esp + 0x38], dl
movsd xmm0, qword [esi + 0x28]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x3c], xmm1
je 0x52b54b
movzx edx, byte [esp + 0x3c]
movzx eax, byte [esp + 0x43]
movzx ecx, byte [esp + 0x42]
mov byte [esp + 0x3c], al
movzx eax, byte [esp + 0x3d]
mov byte [esp + 0x43], dl
movzx edx, byte [esp + 0x41]
mov byte [esp + 0x3d], cl
movzx ecx, byte [esp + 0x3e]
mov byte [esp + 0x42], al
movzx eax, byte [esp + 0x40]
mov byte [esp + 0x3e], dl
movzx edx, byte [esp + 0x3f]
mov byte [esp + 0x41], cl
mov byte [esp + 0x3f], al
mov byte [esp + 0x40], dl
movsd xmm0, qword [esi + 0x40]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x44], xmm1
je 0x52b5aa
movzx edx, byte [esp + 0x44]
movzx eax, byte [esp + 0x4b]
movzx ecx, byte [esp + 0x4a]
mov byte [esp + 0x44], al
movzx eax, byte [esp + 0x45]
mov byte [esp + 0x4b], dl
movzx edx, byte [esp + 0x49]
mov byte [esp + 0x45], cl
movzx ecx, byte [esp + 0x46]
mov byte [esp + 0x4a], al
movzx eax, byte [esp + 0x48]
mov byte [esp + 0x46], dl
movzx edx, byte [esp + 0x47]
mov byte [esp + 0x49], cl
mov byte [esp + 0x47], al
mov byte [esp + 0x48], dl
movsd xmm0, qword [esi + 0x48]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x4c], xmm1
je 0x52b609
movzx edx, byte [esp + 0x4c]
movzx eax, byte [esp + 0x53]
movzx ecx, byte [esp + 0x52]
mov byte [esp + 0x4c], al
movzx eax, byte [esp + 0x4d]
mov byte [esp + 0x53], dl
movzx edx, byte [esp + 0x51]
mov byte [esp + 0x4d], cl
movzx ecx, byte [esp + 0x4e]
mov byte [esp + 0x52], al
movzx eax, byte [esp + 0x50]
mov byte [esp + 0x4e], dl
movzx edx, byte [esp + 0x4f]
mov byte [esp + 0x51], cl
mov byte [esp + 0x4f], al
mov byte [esp + 0x50], dl
movsd xmm0, qword [esi + 0x30]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x54], xmm1
je 0x52b668
movzx edx, byte [esp + 0x54]
movzx eax, byte [esp + 0x5b]
movzx ecx, byte [esp + 0x5a]
mov byte [esp + 0x54], al
movzx eax, byte [esp + 0x55]
mov byte [esp + 0x5b], dl
movzx edx, byte [esp + 0x59]
mov byte [esp + 0x55], cl
movzx ecx, byte [esp + 0x56]
mov byte [esp + 0x5a], al
movzx eax, byte [esp + 0x58]
mov byte [esp + 0x56], dl
movzx edx, byte [esp + 0x57]
mov byte [esp + 0x59], cl
mov byte [esp + 0x57], al
mov byte [esp + 0x58], dl
movsd xmm0, qword [esi + 0x50]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x5c], xmm1
je 0x52b6c7
movzx edx, byte [esp + 0x5c]
movzx eax, byte [esp + 0x63]
movzx ecx, byte [esp + 0x62]
mov byte [esp + 0x5c], al
movzx eax, byte [esp + 0x5d]
mov byte [esp + 0x63], dl
movzx edx, byte [esp + 0x61]
mov byte [esp + 0x5d], cl
movzx ecx, byte [esp + 0x5e]
mov byte [esp + 0x62], al
movzx eax, byte [esp + 0x60]
mov byte [esp + 0x5e], dl
movzx edx, byte [esp + 0x5f]
mov byte [esp + 0x61], cl
mov byte [esp + 0x5f], al
mov byte [esp + 0x60], dl
movsd xmm0, qword [esi + 0x38]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x64], xmm1
je 0x52b726
movzx edx, byte [esp + 0x64]
movzx eax, byte [esp + 0x6b]
movzx ecx, byte [esp + 0x6a]
mov byte [esp + 0x64], al
movzx eax, byte [esp + 0x65]
mov byte [esp + 0x6b], dl
movzx edx, byte [esp + 0x69]
mov byte [esp + 0x65], cl
movzx ecx, byte [esp + 0x66]
mov byte [esp + 0x6a], al
movzx eax, byte [esp + 0x68]
mov byte [esp + 0x66], dl
movzx edx, byte [esp + 0x67]
mov byte [esp + 0x69], cl
mov byte [esp + 0x67], al
mov byte [esp + 0x68], dl
movsd xmm0, qword [esi + 0x58]
movsd qword [esp], xmm0
movsd xmm1, qword [esp]
movsd qword [esp + 0x6c], xmm1
je 0x52b785
movzx edx, byte [esp + 0x6c]
movzx eax, byte [esp + 0x73]
movzx ecx, byte [esp + 0x72]
mov byte [esp + 0x6c], al
movzx eax, byte [esp + 0x6d]
mov byte [esp + 0x73], dl
movzx edx, byte [esp + 0x71]
mov byte [esp + 0x6d], cl
movzx ecx, byte [esp + 0x6e]
mov byte [esp + 0x72], al
movzx eax, byte [esp + 0x70]
mov byte [esp + 0x6e], dl
movzx edx, byte [esp + 0x6f]
mov byte [esp + 0x71], cl
mov byte [esp + 0x6f], al
mov byte [esp + 0x70], dl
push ebx
push ebx
push dword [esi]
call fcn.0074327b
lea eax, [esp + 0x1c]
push dword [esi]
push 1
push 0x64
push eax
call fcn.00742cfc
add esp, 0x1c
mov eax, dword [esi + 0x10]
lea edx, [eax*8 + 0x64]
shr edx, 1
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
cmp dword [esp + 8], 0
jne 0x52b7e4
movzx edx, byte [esp + 0x28]
movzx eax, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x2a]
mov byte [esp + 0x28], al
movzx eax, byte [esp + 0x29]
mov byte [esp + 0x2b], dl
mov byte [esp + 0x29], cl
mov byte [esp + 0x2a], al
push ebx
push ebx
push dword [esi + 4]
call fcn.0074327b
push dword [esi + 4]
push 1
push 0x64
lea eax, [esp + 0x28]
push eax
call fcn.00742cfc
mov eax, dword [esi + 0x10]
shl eax, 3
push eax
call fcn.0074334f
add esp, 0x20
mov edi, eax
mov eax, dword [esi + 0x10]
test eax, eax
jle 0x52b8b5
mov dword [esp], edi
mov edx, dword [esi + 0x18]
inc ebx
mov edi, dword [edx + ebx*4 - 4]
mov ecx, edi
shr ecx, 0x1f
add edi, ecx
sar edi, 1
mov eax, dword [esp]
mov dword [eax + ebx*8 - 8], edi
mov edx, dword [esi + 0x1c]
mov edx, dword [edx + ebx*4 - 4]
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
cmp dword [esp + 8], 0
mov dword [eax + ebx*8 - 4], edx
je 0x52b85a
mov eax, dword [esi + 0x10]
cmp ebx, eax
jl 0x52b81e
jmp 0x52b8d4
mov edi, eax
movzx ecx, byte [edi + ebx*8 - 8]
movzx eax, byte [edi + ebx*8 - 5]
mov edx, ecx
movzx ecx, byte [edi + ebx*8 - 7]
mov byte [edi + ebx*8 - 8], al
movzx eax, byte [edi + ebx*8 - 6]
mov byte [edi + ebx*8 - 5], dl
mov edx, ecx
movzx ecx, byte [edi + ebx*8 - 3]
mov byte [edi + ebx*8 - 7], al
movzx eax, byte [edi + ebx*8 - 4]
mov byte [edi + ebx*8 - 6], dl
movzx edx, byte [edi + ebx*8 - 1]
mov byte [edi + ebx*8 - 4], dl
mov byte [edi + ebx*8 - 1], al
movzx eax, byte [edi + ebx*8 - 2]
mov edx, ecx
mov byte [edi + ebx*8 - 3], al
mov byte [edi + ebx*8 - 2], dl
mov eax, dword [esi + 0x10]
cmp ebx, eax
jl 0x52b81e
push dword [esi + 4]
push eax
push 8
push edi
call fcn.00742cfc
push edi
call fcn.00743035
add esp, 0x14
add esp, 0x74
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp]
jmp 0x52b8b5
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x74
mov ebx, eax
mov edx, 0x64
xor eax, eax
mov dword [esp + edx - 4], eax
mov dword [esp + edx - 8], eax
mov dword [esp + edx - 0xc], eax
mov dword [esp + edx - 0x10], eax
mov dword [esp + edx - 0x14], eax
sub edx, 0x14
jne 0x52b8f3
mov byte [esp + 2], 0x27
mov byte [esp + 3], 0xa
mov edx, dword [ebx + 0xc]
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
mov esi, dword [0x84f850]
test esi, esi
jne 0x52b95e
movzx edx, byte [esp + 0x18]
movzx eax, byte [esp + 0x1b]
mov byte [esp + 0x18], al
mov byte [esp + 0x1b], dl
movzx eax, byte [esp + 0x19]
movzx ecx, byte [esp + 0x1a]
mov byte [esp + 0x19], cl
mov byte [esp + 0x1a], al
mov dword [esp + 0x64], 0x3e8
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
je 0x52b994
movzx edx, byte [esp + 0x1c]
movzx eax, byte [esp + 0x1f]
mov byte [esp + 0x1c], al
mov byte [esp + 0x1f], dl
movzx eax, byte [esp + 0x1d]
movzx ecx, byte [esp + 0x1e]
mov byte [esp + 0x1d], cl
mov byte [esp + 0x1e], al
mov eax, dword [ebx + 8]
mov dword [esp + 0x64], eax
mov edx, dword [esp + 0x64]
mov dword [esp + 0x20], edx
je 0x52b9c9
movzx edx, byte [esp + 0x20]
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x20], al
mov byte [esp + 0x23], dl
movzx eax, byte [esp + 0x21]
movzx ecx, byte [esp + 0x22]
mov byte [esp + 0x21], cl
mov byte [esp + 0x22], al
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x28], edi
je 0x52ba31
movzx edx, byte [esp + 0x24]
movzx eax, byte [esp + 0x2b]
mov byte [esp + 0x24], al
mov byte [esp + 0x2b], dl
movzx eax, byte [esp + 0x25]
movzx ecx, byte [esp + 0x2a]
mov byte [esp + 0x25], cl
mov byte [esp + 0x2a], al
movzx ecx, byte [esp + 0x26]
movzx edx, byte [esp + 0x29]
mov byte [esp + 0x26], dl
mov byte [esp + 0x29], cl
movzx edx, byte [esp + 0x27]
movzx eax, byte [esp + 0x28]
mov byte [esp + 0x27], al
mov byte [esp + 0x28], dl
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x30], edi
je 0x52ba99
movzx edx, byte [esp + 0x2c]
movzx eax, byte [esp + 0x33]
mov byte [esp + 0x2c], al
mov byte [esp + 0x33], dl
movzx eax, byte [esp + 0x2d]
movzx ecx, byte [esp + 0x32]
mov byte [esp + 0x2d], cl
mov byte [esp + 0x32], al
movzx ecx, byte [esp + 0x2e]
movzx edx, byte [esp + 0x31]
mov byte [esp + 0x2e], dl
mov byte [esp + 0x31], cl
movzx edx, byte [esp + 0x2f]
movzx eax, byte [esp + 0x30]
mov byte [esp + 0x2f], al
mov byte [esp + 0x30], dl
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x34], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x38], edi
je 0x52bb01
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0x34], al
mov byte [esp + 0x3b], dl
movzx eax, byte [esp + 0x35]
movzx ecx, byte [esp + 0x3a]
mov byte [esp + 0x35], cl
mov byte [esp + 0x3a], al
movzx ecx, byte [esp + 0x36]
movzx edx, byte [esp + 0x39]
mov byte [esp + 0x36], dl
mov byte [esp + 0x39], cl
movzx edx, byte [esp + 0x37]
movzx eax, byte [esp + 0x38]
mov byte [esp + 0x37], al
mov byte [esp + 0x38], dl
mov eax, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x40], edi
je 0x52bb69
movzx edx, byte [esp + 0x3c]
movzx eax, byte [esp + 0x43]
mov byte [esp + 0x3c], al
mov byte [esp + 0x43], dl
movzx eax, byte [esp + 0x3d]
movzx ecx, byte [esp + 0x42]
mov byte [esp + 0x3d], cl
mov byte [esp + 0x42], al
movzx ecx, byte [esp + 0x3e]
movzx edx, byte [esp + 0x41]
mov byte [esp + 0x3e], dl
mov byte [esp + 0x41], cl
movzx edx, byte [esp + 0x3f]
movzx eax, byte [esp + 0x40]
mov byte [esp + 0x3f], al
mov byte [esp + 0x40], dl
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x48], edi
je 0x52bbd1
movzx edx, byte [esp + 0x44]
movzx eax, byte [esp + 0x4b]
mov byte [esp + 0x44], al
mov byte [esp + 0x4b], dl
movzx eax, byte [esp + 0x45]
movzx ecx, byte [esp + 0x4a]
mov byte [esp + 0x45], cl
mov byte [esp + 0x4a], al
movzx ecx, byte [esp + 0x46]
movzx edx, byte [esp + 0x49]
mov byte [esp + 0x46], dl
mov byte [esp + 0x49], cl
movzx edx, byte [esp + 0x47]
movzx eax, byte [esp + 0x48]
mov byte [esp + 0x47], al
mov byte [esp + 0x48], dl
mov eax, dword [ebx + 0x50]
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x50], edi
je 0x52bc39
movzx edx, byte [esp + 0x4c]
movzx eax, byte [esp + 0x53]
mov byte [esp + 0x4c], al
mov byte [esp + 0x53], dl
movzx eax, byte [esp + 0x4d]
movzx ecx, byte [esp + 0x52]
mov byte [esp + 0x4d], cl
mov byte [esp + 0x52], al
movzx ecx, byte [esp + 0x4e]
movzx edx, byte [esp + 0x51]
mov byte [esp + 0x4e], dl
mov byte [esp + 0x51], cl
movzx edx, byte [esp + 0x4f]
movzx eax, byte [esp + 0x50]
mov byte [esp + 0x4f], al
mov byte [esp + 0x50], dl
mov eax, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x54], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x58], edi
je 0x52bca1
movzx edx, byte [esp + 0x54]
movzx eax, byte [esp + 0x5b]
mov byte [esp + 0x54], al
mov byte [esp + 0x5b], dl
movzx eax, byte [esp + 0x55]
movzx ecx, byte [esp + 0x5a]
mov byte [esp + 0x55], cl
mov byte [esp + 0x5a], al
movzx ecx, byte [esp + 0x56]
movzx edx, byte [esp + 0x59]
mov byte [esp + 0x56], dl
mov byte [esp + 0x59], cl
movzx edx, byte [esp + 0x57]
movzx eax, byte [esp + 0x58]
mov byte [esp + 0x57], al
mov byte [esp + 0x58], dl
mov eax, dword [ebx + 0x58]
mov edx, dword [ebx + 0x5c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x60], edi
je 0x52bd09
movzx edx, byte [esp + 0x5c]
movzx eax, byte [esp + 0x63]
mov byte [esp + 0x5c], al
mov byte [esp + 0x63], dl
movzx eax, byte [esp + 0x5d]
movzx ecx, byte [esp + 0x62]
mov byte [esp + 0x5d], cl
mov byte [esp + 0x62], al
movzx ecx, byte [esp + 0x5e]
movzx edx, byte [esp + 0x61]
mov byte [esp + 0x5e], dl
mov byte [esp + 0x61], cl
movzx edx, byte [esp + 0x5f]
movzx eax, byte [esp + 0x60]
mov byte [esp + 0x5f], al
mov byte [esp + 0x60], dl
xor eax, eax
push eax
push eax
push dword [ebx]
call fcn.0074327b
lea eax, [esp + 0xc]
push dword [ebx]
push 1
push 0x64
push eax
call fcn.00742cfc
add esp, 0x1c
mov eax, dword [ebx + 0x10]
lea edx, [eax*8 + 0x64]
shr edx, 1
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
test esi, esi
jne 0x52bd67
movzx edx, byte [esp + 0x18]
movzx eax, byte [esp + 0x1b]
mov byte [esp + 0x18], al
mov byte [esp + 0x1b], dl
movzx eax, byte [esp + 0x19]
movzx ecx, byte [esp + 0x1a]
mov byte [esp + 0x19], cl
mov byte [esp + 0x1a], al
xor eax, eax
push eax
push eax
push dword [ebx + 4]
call fcn.0074327b
push dword [ebx + 4]
push 1
push 0x64
lea eax, [esp + 0x18]
push eax
call fcn.00742cfc
mov eax, dword [ebx + 0x10]
shl eax, 3
push eax
call fcn.0074334f
add esp, 0x20
mov edi, eax
mov edx, dword [ebx + 0x10]
test edx, edx
jle 0x52be3e
xor eax, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], esi
inc eax
mov ecx, dword [ebx + 0x18]
mov edi, dword [ecx + eax*4 - 4]
mov esi, edi
shr esi, 0x1f
add edi, esi
sar edi, 1
mov edx, dword [esp + 0x68]
mov dword [edx + eax*8 - 8], edi
mov ecx, dword [ebx + 0x1c]
mov ecx, dword [ecx + eax*4 - 4]
mov esi, ecx
shr esi, 0x1f
add ecx, esi
sar ecx, 1
mov dword [edx + eax*8 - 4], ecx
cmp dword [esp + 0x64], 0
je 0x52bde7
mov edx, dword [ebx + 0x10]
cmp eax, edx
jl 0x52bdaa
jmp 0x52be5d
mov esi, edx
movzx edx, byte [esi + eax*8 - 8]
movzx ecx, byte [esi + eax*8 - 5]
mov byte [esi + eax*8 - 8], cl
mov byte [esi + eax*8 - 5], dl
movzx ecx, byte [esi + eax*8 - 7]
movzx edx, byte [esi + eax*8 - 6]
mov byte [esi + eax*8 - 7], dl
mov byte [esi + eax*8 - 6], cl
movzx edx, byte [esi + eax*8 - 4]
movzx ecx, byte [esi + eax*8 - 1]
mov byte [esi + eax*8 - 4], cl
mov byte [esi + eax*8 - 1], dl
movzx edx, byte [esi + eax*8 - 3]
movzx ecx, byte [esi + eax*8 - 2]
mov byte [esi + eax*8 - 3], cl
mov byte [esi + eax*8 - 2], dl
mov edx, dword [ebx + 0x10]
cmp eax, edx
jl 0x52bdaa
mov edi, esi
push dword [ebx + 4]
push edx
push 8
push edi
call fcn.00742cfc
push edi
call fcn.00743035
add esp, 0x14
add esp, 0x74
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x68]
jmp 0x52be3e