Function at 0x536f60
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xb8
mov eax, dword [0x5df040]
xor eax, esp
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xc4]
test eax, eax
mov edx, dword [esp + 0xc8]
push ebx
mov ebx, dword [esp + 0xc0]
push ebp
mov ebp, dword [esp + 0xc8]
mov dword [esp + 0x44], ebx
push esi
push edi
mov edi, dword [esp + 0xdc]
lea ecx, [eax + ebp]
mov eax, dword [esp + 0x4c]
cmovle ecx, ebp
cmp dword [esp + 0xe0], 0
mov dword [esp + 0x44], ecx
mov ecx, dword [ebx + 0x7578]
mov eax, dword [eax + 0x74b0]
mov ebx, dword [ebx + 0x760c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x30], ecx
mov esi, dword [eax + 0x74b4]
mov eax, dword [eax + 0x74b8]
mov dword [esp + 0x64], esi
mov esi, edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x3c], eax
je 0x538664
mov ebp, dword [esp + 0x4c]
mov dword [ebp + 0x750c], 1
mov eax, dword [ebp + 0x682c]
mov dword [esp + 0xb8], eax
mov eax, dword [ebp + 0x6830]
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 0x6834]
mov dword [esp + 0xc0], eax
cmp esi, 1
jb 0x53708b
mov dword [esp + 0x98], edx
lea ebx, [edx + 4]
mov dword [esp + 0x9c], ebx
cmp esi, 4
jb 0x537095
lea eax, [edx - 4]
add eax, edi
mov dword [esp + 0x94], eax
mov eax, dword [eax]
mov dword [esp + 0x8c], eax
mov al, byte [edi + edx - 1]
test al, al
je 0x53708b
movzx eax, al
bsr ecx, eax
mov eax, 8
sub eax, ecx
mov dword [esp + 0x90], eax
cmp esi, 0xffffff88
jbe 0x53710f
mov esi, 0xffffffec
jmp 0x5386cf
movzx ecx, byte [edx]
lea eax, [esi - 2]
mov dword [esp + 0x94], edx
mov dword [esp + 0x8c], ecx
cmp eax, 5
ja case.default.0x5370ae
jmp dword [eax*4 + 0x5386ec]
movzx eax, byte [edx + 6]
shl eax, 0x10
add ecx, eax
movzx eax, byte [edx + 5]
shl eax, 8
add ecx, eax
movzx eax, byte [ebx]
add ecx, eax
movzx eax, byte [edx + 3]
shl eax, 0x18
add ecx, eax
movzx eax, byte [edx + 2]
shl eax, 0x10
add ecx, eax
movzx eax, byte [edx + 1]
shl eax, 8
add ecx, eax
mov dword [esp + 0x8c], ecx
mov al, byte [edi + edx - 1]
test al, al
je 0x53708b
movzx eax, al
bsr ecx, eax
mov eax, 5
sub eax, esi
shl eax, 3
sub eax, ecx
mov dword [esp + 0x90], eax
push dword [ebp]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.00539520
push dword [ebp + 8]
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.00539520
push dword [ebp + 4]
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.00539520
mov ecx, dword [esp + 0xd4]
add esp, 0x24
mov edx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xa0]
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x50], ebp
nop dword [eax]
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
mov esi, dword [eax + ebp*8 + 4]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x50]
mov ebp, dword [ebp + edx*8 + 4]
mov dword [esp + 0x38], ebp
mov al, byte [eax + esi*8 + 2]
mov ebp, dword [esp + 0xb4]
mov byte [esp + 0x37], al
mov eax, dword [esp + 0xb4]
mov al, byte [eax + ecx*8 + 2]
mov ecx, dword [esp + 0xa4]
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0xac]
movzx ecx, word [ecx + esi*8]
mov esi, dword [esp + 0x58]
mov al, byte [eax + edx*8 + 2]
mov dword [esp + 0x24], ecx
movzx ecx, word [ebp + esi*8]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x6c], ecx
movzx ecx, word [ebp + edx*8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x50]
movzx ecx, byte [esi + ecx*8 + 3]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x58]
movzx ecx, byte [esi + ecx*8 + 3]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x68], ecx
movzx ecx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x5c], ecx
cmp al, 1
jbe 0x537458
cmp dword [esp + 0xe4], 0
je 0x537310
cmp al, 0x19
jb 0x537310
mov esi, dword [esp + 0x8c]
mov ecx, ebx
and ecx, 0x1f
movzx eax, al
sub eax, 5
mov edx, esi
shl edx, cl
add ebx, eax
mov ecx, eax
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, ebx
shl edx, 5
add edx, ebp
cmp ebx, 0x20
jbe 0x5372a1
mov edi, 0x5a2638
jmp 0x5372f1
cmp edi, dword [esp + 0x9c]
jb 0x5372b6
mov eax, ebx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x5372e6
mov ebp, dword [esp + 0x98]
cmp edi, ebp
jne 0x5372ca
cmp ebx, 0x20
jb 0x5372f8
mov ecx, ebx
jmp 0x5372f8
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, ebp
jae 0x5372d9
mov ecx, edi
sub ecx, ebp
sub edi, ecx
lea eax, [ecx*8]
mov ecx, ebx
sub ecx, eax
mov esi, dword [edi]
mov ebx, ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], edi
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, 5
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x53739a
mov esi, dword [esp + 0x8c]
mov ecx, ebx
and ecx, 0x1f
movzx eax, al
mov edx, esi
add ebx, eax
shl edx, cl
mov ecx, eax
neg ecx
mov dword [esp + 0x90], ebx
and ecx, 0x1f
shr edx, cl
add edx, ebp
mov dword [esp + 0x18], edx
cmp ebx, 0x20
jbe 0x53734e
mov edi, 0x5a2638
mov dword [esp + 0x94], edi
jmp 0x5373a1
cmp edi, dword [esp + 0x9c]
jb 0x537363
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x53738a
mov ebp, dword [esp + 0x98]
cmp edi, ebp
je 0x5373a1
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x53737f
mov ecx, edi
sub ecx, ebp
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
mov al, byte [esp + 0x1f]
test al, al
je 0x5373f2
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0x90], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x14], eax
mov al, byte [esp + 0x1f]
mov dl, byte [esp + 0x37]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x537418
cmp ebx, 0x20
jbe 0x53751a
mov edi, 0x5a2638
mov dword [esp + 0x94], edi
mov ebp, dword [esp + 0x98]
test dl, dl
je 0x537445
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0x90], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x20], eax
cmp ebx, 0x20
jbe 0x53758c
mov edi, 0x5a2638
jmp 0x5375cd
xor edx, edx
test esi, esi
sete dl
test al, al
jne 0x537496
mov ecx, dword [esp + edx*4 + 0xb8]
neg esi
mov dword [esp + 0x18], ecx
sbb eax, eax
mov esi, dword [esp + 0x8c]
and eax, 4
mov ebp, dword [esp + eax + 0xb8]
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xb8], ecx
jmp 0x5373c4
mov esi, dword [esp + 0x8c]
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
inc ebx
shr eax, 0x1f
mov dword [esp + 0x90], ebx
lea ecx, [eax + edx]
xor eax, eax
add ecx, ebp
cmp ecx, 3
jne 0x5374e5
mov ecx, dword [esp + 0xb8]
lea edx, [ecx - 1]
test edx, edx
sete al
sub edx, eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc0], eax
jmp 0x5373b6
mov edx, dword [esp + ecx*4 + 0xb8]
test edx, edx
sete al
sub edx, eax
mov dword [esp + 0x18], edx
cmp ecx, 1
je 0x5373af
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc0], eax
jmp 0x5373b6
mov ebp, dword [esp + 0x98]
cmp edi, dword [esp + 0x9c]
jb 0x537550
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
jmp 0x53741f
cmp edi, ebp
je 0x53741f
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x537569
mov ecx, edi
sub ecx, ebp
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x94], edi
mov esi, dword [edi]
add ebx, eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
jmp 0x53741f
cmp edi, dword [esp + 0x9c]
jb 0x5375a1
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x5375bd
cmp edi, ebp
je 0x5375d4
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebp
jae 0x5375b6
mov ecx, edi
sub ecx, ebp
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edi
cmp dword [esp + 0xe0], 1
je 0x537726
mov ebp, dword [esp + 0x28]
mov eax, esi
lea edx, [ebx + ebp]
mov ebx, dword [esp + 0x68]
mov ecx, edx
add edx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
and eax, dword [ebp*4 + 0x5a25b8]
mov ecx, dword [esp + 0x24]
movzx ecx, cx
add ecx, eax
mov eax, esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0xa0], ecx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x6c]
and eax, dword [ebx*4 + 0x5a25b8]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0xb0], ecx
cmp edx, 0x20
jbe 0x537647
mov edi, 0x5a2638
jmp 0x53768c
cmp edi, dword [esp + 0x9c]
jb 0x53765c
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x537683
mov ebx, dword [esp + 0x98]
cmp edi, ebx
je 0x537693
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x537678
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub edx, eax
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], edi
mov ebp, dword [esp + 0x5c]
mov eax, esi
lea ebx, [edx + ebp]
mov ecx, ebx
mov dword [esp + 0x90], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x2c]
and eax, dword [ebp*4 + 0x5a25b8]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0xa8], ecx
cmp ebx, 0x20
jbe 0x5376d3
mov edi, 0x5a2638
jmp 0x53771f
cmp edi, dword [esp + 0x9c]
jb 0x5376e8
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x53770f
mov edx, dword [esp + 0x98]
cmp edi, edx
je 0x537726
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x537704
mov ecx, edi
sub ecx, edx
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
mov esi, dword [eax + 0x760c]
lea eax, [edx + ecx]
cmp eax, esi
ja 0x537a44
add edx, dword [esp + 0x10]
lea ecx, [eax - 0x20]
mov eax, dword [esp + 0x30]
mov ebp, edx
mov esi, dword [esp + 0x14]
add eax, dword [esp + 0x20]
add esi, dword [esp + 0x20]
movq xmm0, qword [esp + 0x70]
sub ebp, dword [esp + 0x18]
movq qword [esp + 0x80], xmm0
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x5c], eax
cmp eax, dword [esp + 0x54]
ja 0x5379b7
mov eax, dword [esp + 0x10]
add eax, esi
cmp eax, ecx
ja 0x5379b7
mov ecx, dword [esp + 0x44]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x5379b7
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x537810
mov edx, dword [esp + 0x30]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x24]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x53780c
mov eax, dword [esp + 0x2c]
add ecx, 0x10
add edx, 0x20
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x5377f4
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], eax
mov eax, edx
sub eax, dword [esp + 0x40]
cmp ecx, eax
jbe 0x53788e
mov eax, edx
sub eax, dword [esp + 0x64]
cmp ecx, eax
ja 0x537a33
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
add ebp, eax
lea eax, [ecx + ebp]
cmp eax, dword [esp + 0x3c]
ja 0x537863
push ecx
push ebp
push edx
call fcn.00548d90
mov ebp, dword [esp + 0x1c]
add esp, 0xc
jmp 0x537a09
mov esi, dword [esp + 0x3c]
sub esi, ebp
push esi
push ebp
push edx
call fcn.00548d90
mov edx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x14]
add edx, esi
mov ebp, dword [esp + 0x40]
sub eax, esi
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
jmp 0x537895
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
cmp ecx, 0x10
jb 0x5378e5
movups xmm0, xmmword [ebp]
add eax, edx
cmp dword [esp + 0x14], 0x10
mov dword [esp + 0x2c], eax
movups xmmword [edx], xmm0
jle 0x5378d8
lea eax, [edx + 0x10]
mov edx, dword [esp + 0x2c]
lea ecx, [ebp + 0x10]
nop dword [eax]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x5378c0
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x24], esi
jmp 0x537a09
cmp ecx, 8
jae 0x53791b
movzx eax, byte [ebp]
mov byte [edx], al
movzx eax, byte [ebp + 1]
mov byte [edx + 1], al
movzx eax, byte [ebp + 2]
mov byte [edx + 2], al
movzx eax, byte [ebp + 3]
add ebp, dword [ecx*4 + 0x5a2478]
mov byte [edx + 3], al
mov eax, dword [ebp]
sub ebp, dword [ecx*4 + 0x5a2498]
mov dword [edx + 4], eax
jmp 0x537926
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x14]
cmp eax, 8
jbe 0x5378d8
add edx, 8
lea ecx, [eax - 8]
add ebp, 8
mov eax, edx
add ecx, edx
sub eax, ebp
mov dword [esp + 0x2c], ecx
cmp eax, 0x10
jge 0x537974
sub ebp, edx
mov esi, ecx
nop dword [eax + eax]
mov eax, dword [edx + ebp]
mov ecx, dword [edx + ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x537950
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x24], esi
jmp 0x537a09
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [ebp]
mov esi, dword [esp + 0x24]
add eax, 0xfffffff8
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x5378d8
add edx, 0x10
lea eax, [ebp + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x537995
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x24], esi
jmp 0x537a09
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push dword [esp + 0x68]
mov esi, dword [esp + 0x28]
push dword [esp + 0x48]
mov ebp, dword [esp + 0x1c]
add esi, 0xffffffe0
push dword [esp + 0x60]
push eax
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x50]
add eax, esi
push eax
push dword [esp + 0x68]
push ebp
call fcn.005393c0
mov esi, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x74]
add esp, 0x2c
mov dword [esp + 0x30], eax
cmp esi, 0xffffff88
ja 0x537a3b
add ebp, esi
sub dword [esp + 0xe0], 1
mov dword [esp + 0x10], ebp
je 0x538617
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x50]
jmp 0x537190
mov dword [esp + 0x24], 0xffffffec
mov esi, dword [esp + 0x24]
jmp 0x5386cf
mov eax, dword [esp + 0xe0]
test eax, eax
jle 0x53860d
sub esi, ecx
je 0x537a97
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
sub eax, ecx
cmp esi, eax
jbe 0x537a6f
mov esi, 0xffffffba
jmp 0x5386cf
push esi
push dword [esp + 0x34]
push ecx
call fcn.00539740
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x10]
sub edx, esi
add eax, esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x10], eax
jmp 0x537a9b
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x4c]
add eax, edx
movq xmm0, qword [esp + 0x70]
mov edx, eax
sub edx, dword [esp + 0x18]
movq qword [esp + 0x80], xmm0
lea ecx, [esi + 0x7614]
mov dword [esp + 0x28], eax
add esi, 0x17614
mov dword [esp + 0x48], ecx
add ecx, dword [esp + 0x20]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edx
mov dword [esi + 0x7610], 0
mov esi, dword [esp + 0x20]
add esi, dword [esp + 0x14]
mov dword [esp + 0x24], esi
cmp ecx, dword [esp + 0x54]
ja 0x537d30
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
add ecx, esi
add eax, 0xffffffe0
cmp ecx, eax
ja 0x537d30
mov ecx, dword [esp + 0x44]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x537d30
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax + 0x7614]
mov eax, dword [esp + 0x20]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x537b8c
mov edx, dword [esp + 0x4c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x7624]
lea ebp, [ecx + eax]
mov dword [esp + 0x2c], ebp
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x537b88
add ecx, 0x10
mov eax, ebp
add edx, 0x7634
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x537b70
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov eax, ecx
sub eax, dword [esp + 0x40]
cmp dword [esp + 0x18], eax
jbe 0x537c06
mov eax, ecx
sub eax, dword [esp + 0x64]
cmp dword [esp + 0x18], eax
ja 0x53708b
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x40]
add edx, eax
mov eax, dword [esp + 0x14]
add eax, edx
cmp eax, dword [esp + 0x3c]
ja 0x537bdd
push dword [esp + 0x14]
push edx
push ecx
call fcn.00548d90
add esp, 0xc
jmp 0x537d6f
mov esi, dword [esp + 0x3c]
sub esi, edx
push esi
push edx
push ecx
call fcn.00548d90
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x40]
add ecx, esi
sub dword [esp + 0x14], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
jmp 0x537c11
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
cmp eax, 0x10
jb 0x537c5d
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [edx]
add eax, ecx
cmp dword [esp + 0x14], 0x10
mov dword [esp + 0x2c], eax
movups xmmword [ecx], xmm0
jle 0x537d6f
lea eax, [ecx + 0x10]
lea ecx, [edx + 0x10]
mov edx, dword [esp + 0x2c]
nop
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x537c40
jmp 0x537d6f
cmp eax, 8
jae 0x537c9d
movzx eax, byte [edx]
mov byte [ecx], al
movzx eax, byte [edx + 1]
mov byte [ecx + 1], al
movzx eax, byte [edx + 2]
mov byte [ecx + 2], al
movzx eax, byte [edx + 3]
mov byte [ecx + 3], al
mov eax, dword [esp + 0x18]
add edx, dword [eax*4 + 0x5a2478]
mov eax, dword [edx]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
sub edx, dword [eax*4 + 0x5a2498]
mov eax, dword [esp + 0x28]
jmp 0x537cae
mov ebp, dword [esp + 0x28]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp], eax
mov eax, ebp
mov dword [eax + 4], ecx
cmp dword [esp + 0x14], 8
jbe 0x537d6f
lea ecx, [edx + 8]
lea edx, [eax + 8]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x14]
add eax, 0xfffffff8
add eax, edx
mov dword [esp + 0x38], eax
mov eax, edx
sub eax, ecx
cmp eax, 0x10
jge 0x537cfa
mov esi, dword [esp + 0x38]
mov ebp, ecx
sub ebp, edx
mov eax, dword [edx + ebp]
mov ecx, dword [edx + ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x537ce1
mov esi, dword [esp + 0x24]
jmp 0x537d6f
mov eax, dword [esp + 0x14]
movups xmm0, xmmword [ecx]
add eax, 0xfffffff8
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x537d6f
lea eax, [ecx + 0x10]
add edx, 0x10
mov ecx, dword [esp + 0x38]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x537d16
jmp 0x537d6f
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push dword [esp + 0x68]
push dword [esp + 0x48]
push dword [esp + 0x60]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x64]
movq qword [eax], xmm0
push dword [esp + 0x34]
mov dword [eax + 8], ecx
call fcn.005392c0
mov esi, eax
add esp, 0x28
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], eax
cmp esi, 0xffffff88
ja 0x5386cf
mov eax, dword [esp + 0xe0]
add dword [esp + 0x10], esi
dec eax
mov dword [esp + 0xe0], eax
test eax, eax
jle 0x53860d
mov ebp, dword [esp + 0x58]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x60]
mov eax, dword [eax + ebp*8 + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xac]
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [esp + 0xa4]
mov al, byte [ecx + eax*8 + 2]
mov ecx, dword [esp + 0xac]
mov byte [esp + 0x37], al
mov eax, dword [esp + 0xb4]
mov al, byte [eax + ebp*8 + 2]
mov byte [esp + 0x1f], al
mov al, byte [ecx + edx*8 + 2]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x50]
movzx edx, word [ecx + edx*8]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x2c], edx
movzx edx, word [ecx + ebp*8]
mov ecx, dword [esp + 0xac]
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x6c], edx
movzx edx, word [ecx + ebp*8]
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x50]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0xb4]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x58]
movzx edx, byte [ebp + edx*8 + 3]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x60]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], edx
cmp al, 1
jbe 0x538016
cmp dword [esp + 0xe4], 0
je 0x537f28
cmp al, 0x19
jb 0x537f28
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
sub eax, 5
mov edx, ebp
add ebx, eax
shl edx, cl
mov ecx, eax
neg ecx
and ecx, 0x1f
shr edx, cl
mov ecx, ebx
shl edx, 5
add edx, esi
cmp ebx, 0x20
jbe 0x537eb9
mov edi, 0x5a2638
jmp 0x537f09
cmp edi, dword [esp + 0x9c]
jb 0x537ece
mov eax, ebx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x537efe
mov esi, dword [esp + 0x98]
cmp edi, esi
jne 0x537ee2
cmp ebx, 0x20
jb 0x537f10
mov ecx, ebx
jmp 0x537f10
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, esi
jae 0x537ef1
mov ecx, edi
sub ecx, esi
sub edi, ecx
lea eax, [ecx*8]
mov ecx, ebx
sub ecx, eax
mov ebp, dword [edi]
mov ebx, ecx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x94], edi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add ebx, 5
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x537fab
mov ecx, ebx
movzx eax, al
and ecx, 0x1f
mov edx, ebp
shl edx, cl
add ebx, eax
mov ecx, eax
mov dword [esp + 0x90], ebx
neg ecx
and ecx, 0x1f
shr edx, cl
add edx, esi
mov dword [esp + 0x18], edx
cmp ebx, 0x20
jbe 0x537f5f
mov edi, 0x5a2638
mov dword [esp + 0x94], edi
jmp 0x537fb2
cmp edi, dword [esp + 0x9c]
jb 0x537f74
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x537f9b
mov esi, dword [esp + 0x98]
cmp edi, esi
je 0x537fb2
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537f90
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov ebp, dword [edi]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
mov al, byte [esp + 0x1f]
test al, al
je 0x5380cb
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, ebp
mov ebp, dword [esp + 0x20]
add ebx, edx
shl eax, cl
mov ecx, edx
neg ecx
mov dword [esp + 0x90], ebx
and ecx, 0x1f
shr eax, cl
add ebp, eax
mov al, byte [esp + 0x1f]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x74], ebp
jmp 0x5380cf
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x53804e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + edx*4 + 0xb8]
neg eax
mov dword [esp + 0x18], ecx
sbb eax, eax
and eax, 4
mov esi, dword [esp + eax + 0xb8]
mov dword [esp + 0xbc], esi
mov dword [esp + 0xb8], ecx
jmp 0x537fd5
mov ecx, ebx
mov eax, ebp
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0x90], ebx
lea ecx, [eax + edx]
xor eax, eax
add ecx, esi
cmp ecx, 3
jne 0x538096
mov ecx, dword [esp + 0xb8]
lea edx, [ecx - 1]
test edx, edx
sete al
sub edx, eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x18], edx
mov dword [esp + 0xc0], eax
jmp 0x537fc7
mov edx, dword [esp + ecx*4 + 0xb8]
test edx, edx
sete al
sub edx, eax
mov dword [esp + 0x18], edx
cmp ecx, 1
je 0x537fc0
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xc0], eax
jmp 0x537fc7
mov ebp, dword [esp + 0x20]
mov dl, byte [esp + 0x37]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x5380f1
cmp ebx, 0x20
jbe 0x538137
mov edi, 0x5a2638
mov dword [esp + 0x94], edi
mov esi, dword [esp + 0x8c]
test dl, dl
je 0x538128
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0x90], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x28]
add ecx, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x70], ecx
cmp ebx, 0x20
jbe 0x5381a2
mov edi, 0x5a2638
jmp 0x5381ea
cmp edi, dword [esp + 0x9c]
jb 0x538163
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
jmp 0x5380f8
mov esi, dword [esp + 0x98]
cmp edi, esi
je 0x5380f1
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x53817f
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x94], edi
mov esi, dword [edi]
add ebx, eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
jmp 0x5380f8
cmp edi, dword [esp + 0x9c]
jb 0x5381b7
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x5381da
mov edx, dword [esp + 0x98]
cmp edi, edx
je 0x5381f1
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x5381d3
mov ecx, edi
sub ecx, edx
imul eax, ecx, 0xfffffff8
sub edi, ecx
add ebx, eax
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edi
cmp dword [esp + 0xe0], 1
je 0x538349
mov edx, dword [esp + 0x38]
mov eax, esi
add edx, ebx
mov ebx, dword [esp + 0x5c]
mov ecx, edx
add edx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x38]
and eax, dword [ecx*4 + 0x5a25b8]
mov ecx, dword [esp + 0x2c]
movzx ecx, cx
add ecx, eax
mov eax, esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0xa0], ecx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x6c]
and eax, dword [ebx*4 + 0x5a25b8]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0xb0], ecx
cmp edx, 0x20
jbe 0x538267
mov edi, 0x5a2638
jmp 0x5382ac
cmp edi, dword [esp + 0x9c]
jb 0x53827c
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x5382a3
mov ebx, dword [esp + 0x98]
cmp edi, ebx
je 0x5382b3
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x538298
mov ecx, edi
sub ecx, ebx
lea eax, [ecx*8]
sub edi, ecx
sub edx, eax
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x94], edi
mov ebx, dword [esp + 0x24]
mov eax, esi
add ebx, edx
mov ecx, ebx
mov dword [esp + 0x90], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x24]
and eax, dword [ecx*4 + 0x5a25b8]
mov ecx, dword [esp + 0x68]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0xa8], ecx
cmp ebx, 0x20
jbe 0x5382f6
mov edi, 0x5a2638
jmp 0x538342
cmp edi, dword [esp + 0x9c]
jb 0x53830b
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x538332
mov edx, dword [esp + 0x98]
cmp edi, edx
je 0x538349
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x538327
mov ecx, edi
sub ecx, edx
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov esi, dword [edi]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edi
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
movq xmm0, qword [esp + 0x70]
movq qword [esp + 0x80], xmm0
lea esi, [eax + ebp]
lea edx, [eax + ecx]
mov dword [esp + 0x24], esi
add eax, dword [esp + 0x30]
mov ebp, edx
sub ebp, dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov dword [esp + 0x5c], eax
cmp eax, dword [esp + 0x54]
ja 0x5385ae
mov eax, dword [esp + 0x44]
add ecx, esi
add eax, 0xffffffe0
cmp ecx, eax
ja 0x5385ae
mov ecx, dword [esp + 0x44]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x10]
cmp ecx, eax
jb 0x5385ae
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x28]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x53840c
mov edx, dword [esp + 0x30]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x24]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x538408
mov eax, dword [esp + 0x2c]
add ecx, 0x10
add edx, 0x20
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x5383f0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
mov dword [esp + 0x48], eax
mov eax, edx
sub eax, dword [esp + 0x40]
cmp ecx, eax
jbe 0x53848a
mov eax, edx
sub eax, dword [esp + 0x64]
cmp ecx, eax
ja 0x53708b
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
add ebp, eax
lea eax, [ecx + ebp]
cmp eax, dword [esp + 0x3c]
ja 0x53845f
push ecx
push ebp
push edx
call fcn.00548d90
mov ebp, dword [esp + 0x1c]
add esp, 0xc
jmp 0x5385ee
mov esi, dword [esp + 0x3c]
sub esi, ebp
push esi
push ebp
push edx
call fcn.00548d90
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x20]
add edx, esi
mov ebp, dword [esp + 0x40]
sub eax, esi
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
jmp 0x538491
mov eax, dword [esp + 0x84]
mov dword [esp + 0x20], eax
cmp ecx, 0x10
jb 0x5384e1
movups xmm0, xmmword [ebp]
add eax, edx
cmp dword [esp + 0x20], 0x10
mov dword [esp + 0x2c], eax
movups xmmword [edx], xmm0
jle 0x5384d8
lea eax, [edx + 0x10]
mov edx, dword [esp + 0x2c]
lea ecx, [ebp + 0x10]
nop dword [eax + eax]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x5384c0
mov ebp, dword [esp + 0x10]
jmp 0x5385ee
cmp ecx, 8
jae 0x538517
movzx eax, byte [ebp]
mov byte [edx], al
movzx eax, byte [ebp + 1]
mov byte [edx + 1], al
movzx eax, byte [ebp + 2]
mov byte [edx + 2], al
movzx eax, byte [ebp + 3]
add ebp, dword [ecx*4 + 0x5a2478]
mov byte [edx + 3], al
mov eax, dword [ebp]
sub ebp, dword [ecx*4 + 0x5a2498]
mov dword [edx + 4], eax
jmp 0x538522
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x20]
cmp eax, 8
jbe 0x5384d8
add edx, 8
lea ecx, [eax - 8]
add ebp, 8
mov eax, edx
add ecx, edx
sub eax, ebp
mov dword [esp + 0x38], ecx
cmp eax, 0x10
jge 0x538567
sub ebp, edx
mov esi, ecx
mov eax, dword [edx + ebp]
mov ecx, dword [edx + ebp + 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, esi
jb 0x538547
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
jmp 0x5385ee
mov eax, dword [esp + 0x20]
movups xmm0, xmmword [ebp]
mov ecx, dword [esp + 0x38]
add eax, 0xfffffff8
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x5384d8
add edx, 0x10
lea eax, [ebp + 0x10]
nop dword [eax + eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edx, ecx
jb 0x538590
mov ebp, dword [esp + 0x10]
jmp 0x5385ee
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x4c]
push dword [esp + 0x68]
mov ebp, dword [esp + 0x18]
push dword [esp + 0x48]
push dword [esp + 0x60]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x64]
movq qword [eax], xmm0
push ebp
mov dword [eax + 8], ecx
call fcn.005392c0
mov esi, eax
add esp, 0x28
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], eax
cmp esi, 0xffffff88
ja 0x5386cf
add ebp, esi
sub dword [esp + 0xe0], 1
mov dword [esp + 0x10], ebp
jne 0x537d93
jmp 0x538617
jne 0x53708b
mov ebp, dword [esp + 0x10]
lea eax, [esp + 0x8c]
push eax
call fcn.0052fa00
add esp, 4
test eax, eax
je 0x53708b
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x54]
mov dword [esi + 0x6830], eax
mov eax, dword [esp + 0xc0]
mov dword [esi + 0x682c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x6834], eax
jmp 0x538668
mov esi, dword [esp + 0x4c]
cmp dword [esi + 0x7610], 2
jne 0x5386a8
mov eax, dword [esp + 0x44]
sub ebx, ecx
sub eax, ebp
cmp ebx, eax
ja 0x537a65
test ebp, ebp
je 0x538692
push ebx
push ecx
push ebp
call fcn.00548d90
add esp, 0xc
add ebp, ebx
lea ecx, [esi + 0x7614]
mov dword [esi + 0x7610], 0
lea ebx, [esi + 0x17614]
mov eax, dword [esp + 0x44]
sub ebx, ecx
sub eax, ebp
cmp ebx, eax
ja 0x537a65
test ebp, ebp
je 0x5386c9
push ebx
push ecx
push ebp
call fcn.00548d90
add esp, 0xc
add ebp, ebx
mov esi, ebp
sub esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0xc4]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00423495
add esp, 0xb8
ret