Function at 0x538710
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xb4
mov eax, dword [0x5df040]
xor eax, esp
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
push ebx
cmp dword [ecx + 0x7610], 0
push ebp
mov ebp, dword [esp + 0xc4]
push esi
push edi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x60], ecx
jne 0x53876a
test eax, eax
lea ebx, [eax + ebp]
cmovle ebx, ebp
mov dword [esp + 0x3c], ebx
jmp 0x538774
mov eax, dword [ecx + 0x7608]
mov dword [esp + 0x3c], eax
mov esi, dword [ecx + 0x74b0]
mov eax, dword [ecx + 0x7578]
mov ebx, dword [ecx + 0x7588]
mov dword [esp + 0x44], esi
add ebx, eax
cmp dword [esp + 0xdc], 0
mov esi, dword [ecx + 0x74b4]
mov dword [esp + 0x5c], esi
mov esi, dword [ecx + 0x74b8]
mov dword [esp + 0x40], esi
mov esi, edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], ebx
je 0x53925c
mov dword [ecx + 0x750c], 1
mov eax, dword [ecx + 0x682c]
mov dword [esp + 0xb4], eax
mov eax, dword [ecx + 0x6830]
mov dword [esp + 0xb8], eax
mov eax, dword [ecx + 0x6834]
mov dword [esp + 0xbc], eax
cmp esi, 1
jb 0x538846
mov dword [esp + 0x94], edx
lea ebx, [edx + 4]
mov dword [esp + 0x98], ebx
cmp esi, 4
jb 0x538850
lea eax, [edx - 4]
add eax, edi
mov dword [esp + 0x90], eax
mov eax, dword [eax]
mov dword [esp + 0x88], eax
mov al, byte [edi + edx - 1]
test al, al
je 0x538846
movzx eax, al
bsr ecx, eax
mov eax, 8
sub eax, ecx
mov dword [esp + 0x8c], eax
cmp esi, 0xffffff88
jbe 0x5388ca
mov eax, 0xffffffec
jmp 0x539286
movzx ecx, byte [edx]
lea eax, [esi - 2]
mov dword [esp + 0x90], edx
mov dword [esp + 0x88], ecx
cmp eax, 5
ja case.default.0x538869
jmp dword [eax*4 + 0x5392a0]
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 + 0x88], ecx
mov al, byte [edi + edx - 1]
test al, al
je 0x538846
movzx eax, al
bsr ecx, eax
mov eax, 5
sub eax, esi
shl eax, 3
sub eax, ecx
mov dword [esp + 0x8c], eax
mov esi, dword [esp + 0x60]
lea eax, [esp + 0x88]
push dword [esi]
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.00539520
push dword [esi + 8]
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.00539520
push dword [esi + 4]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.00539520
mov esi, dword [esp + 0xd0]
add esp, 0x24
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
nop word [eax + eax]
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xa8]
mov ebp, dword [ecx + edx*8 + 4]
mov ecx, dword [esp + 0xa0]
mov al, byte [ecx + eax*8 + 2]
mov ecx, dword [esp + 0xa8]
mov byte [esp + 0x27], al
mov eax, dword [esp + 0xb0]
mov al, byte [eax + esi*8 + 2]
mov byte [esp + 0x13], al
mov al, byte [ecx + edx*8 + 2]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x38]
movzx edx, word [ecx + edx*8]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x64], edx
movzx edx, word [ecx + esi*8]
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x54], edx
movzx edx, word [ecx + esi*8]
mov esi, dword [esp + 0xa0]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x38]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x4c]
movzx edx, byte [esi + edx*8 + 3]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x34]
movzx edx, byte [ecx + edx*8 + 3]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
cmp al, 1
jbe 0x538ce3
cmp dword [esp + 0xe0], 0
je 0x538af1
cmp al, 0x19
jb 0x538af1
mov edx, dword [esp + 0x88]
mov ecx, ebx
and ecx, 0x1f
movzx eax, al
sub eax, 5
mov ebp, edx
shl ebp, cl
add ebx, eax
mov ecx, eax
mov eax, dword [esp + 0x34]
neg ecx
and ecx, 0x1f
shr ebp, cl
mov ecx, dword [esp + 0xa8]
shl ebp, 5
add ebp, dword [ecx + eax*8 + 4]
mov ecx, ebx
cmp ebx, 0x20
jbe 0x538a82
mov edi, 0x5a2638
jmp 0x538acb
cmp edi, dword [esp + 0x98]
jb 0x538a97
mov eax, ebx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x538ac0
cmp edi, esi
jne 0x538aa4
cmp ebx, 0x20
jb 0x538ad2
mov ecx, ebx
jmp 0x538ad2
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, esi
jae 0x538ab3
mov ecx, edi
sub ecx, esi
sub edi, ecx
lea eax, [ecx*8]
mov ecx, ebx
sub ecx, eax
mov edx, dword [edi]
mov ebx, ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edi
mov esi, dword [esp + 0x88]
and ecx, 0x1f
mov eax, edx
add ebx, 5
shl eax, cl
shr eax, 0x1b
add ebp, eax
mov dword [esp + 0x20], ebp
jmp 0x538b86
mov esi, dword [esp + 0x88]
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 + 0x8c], ebx
and ecx, 0x1f
shr edx, cl
add ebp, edx
mov dword [esp + 0x20], ebp
cmp ebx, 0x20
jbe 0x538b2f
mov edi, 0x5a2638
mov dword [esp + 0x90], edi
jmp 0x538b8d
cmp edi, dword [esp + 0x98]
jb 0x538b4f
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov eax, dword [edi]
mov esi, eax
mov dword [esp + 0x88], eax
jmp 0x538b7f
mov edx, dword [esp + 0x94]
cmp edi, edx
je 0x538b8d
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x538b6b
mov ecx, edi
sub ecx, edx
sub edi, ecx
lea eax, [ecx*8]
sub ebx, eax
mov esi, dword [edi]
mov dword [esp + 0x88], esi
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], ebx
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xb4], ebp
mov ebp, dword [esp + 0x28]
mov al, byte [esp + 0x13]
mov dword [esp + 0xb8], edx
test al, al
je 0x538bec
movzx edx, al
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
add ebx, edx
mov ecx, edx
mov dword [esp + 0x8c], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
add ecx, eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x74], ecx
mov dl, byte [esp + 0x27]
movzx ecx, al
movzx eax, dl
add ecx, eax
cmp ecx, 0x14
jb 0x538c12
cmp ebx, 0x20
jbe 0x538d9d
mov edi, 0x5a2638
mov dword [esp + 0x90], edi
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x88]
test dl, dl
je 0x538c4a
mov ecx, ebx
movzx edx, dl
and ecx, 0x1f
add ebx, edx
shl eax, cl
mov ecx, edx
neg ecx
mov dword [esp + 0x8c], ebx
and ecx, 0x1f
shr eax, cl
add ebp, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x70], ebp
cmp ebx, 0x20
jbe 0x538e0f
mov edi, 0x5a2638
mov dword [esp + 0x90], edi
mov ebp, dword [esp + 0x88]
cmp dword [esp + 0xdc], 1
je 0x538f4e
mov edx, dword [esp + 0x30]
mov eax, ebp
add edx, ebx
mov ebx, dword [esp + 0x68]
mov ecx, edx
add edx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x30]
and eax, dword [ecx*4 + 0x5a25b8]
mov ecx, dword [esp + 0x64]
movzx ecx, cx
add ecx, eax
mov eax, ebp
mov dword [esp + 0x38], ecx
mov dword [esp + 0x9c], ecx
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x54]
and eax, dword [ebx*4 + 0x5a25b8]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xac], ecx
cmp edx, 0x20
jbe 0x538e7a
mov edi, 0x5a2638
jmp 0x538eb8
mov esi, dword [esp + 0x88]
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x538d20
mov ebp, dword [esp + 0x28]
mov eax, ebp
mov ecx, dword [esp + edx*4 + 0xb4]
neg eax
mov dword [esp + 0x20], ecx
sbb eax, eax
and eax, 4
mov edx, dword [esp + eax + 0xb4]
mov dword [esp + 0xb4], ecx
jmp 0x538bad
mov ecx, ebx
mov eax, esi
and ecx, 0x1f
inc ebx
shl eax, cl
shr eax, 0x1f
mov dword [esp + 0x8c], ebx
lea ecx, [eax + edx]
xor eax, eax
add ecx, ebp
cmp ecx, 3
jne 0x538d68
mov edx, dword [esp + 0xb4]
lea ebp, [edx - 1]
test ebp, ebp
sete al
sub ebp, eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x20], ebp
mov dword [esp + 0xbc], eax
jmp 0x538ba2
mov ebp, dword [esp + ecx*4 + 0xb4]
test ebp, ebp
sete al
sub ebp, eax
mov dword [esp + 0x20], ebp
cmp ecx, 1
je 0x538b9b
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xbc], eax
jmp 0x538ba2
mov esi, dword [esp + 0x94]
cmp edi, dword [esp + 0x98]
jb 0x538dd3
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], ebx
mov eax, dword [edi]
mov dword [esp + 0x88], eax
jmp 0x538c20
cmp edi, esi
je 0x538c19
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x538dec
mov ecx, edi
sub ecx, esi
imul eax, ecx, 0xfffffff8
sub edi, ecx
mov dword [esp + 0x90], edi
add ebx, eax
mov eax, dword [edi]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], eax
jmp 0x538c20
cmp edi, dword [esp + 0x98]
jb 0x538e3e
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], ebx
mov ebp, dword [edi]
mov dword [esp + 0x88], ebp
jmp 0x538c66
cmp edi, esi
je 0x538c5f
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x538e57
mov ecx, edi
sub ecx, esi
sub edi, ecx
imul eax, ecx, 0xfffffff8
mov dword [esp + 0x90], edi
mov ebp, dword [edi]
add ebx, eax
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebx
jmp 0x538c66
cmp edi, dword [esp + 0x98]
jb 0x538e8f
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x538eaf
cmp edi, esi
je 0x538ebf
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x538ea4
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub edx, eax
mov ebp, dword [edi]
mov dword [esp + 0x88], ebp
mov dword [esp + 0x90], edi
mov ebx, dword [esp + 0x1c]
mov eax, ebp
add ebx, edx
mov ecx, ebx
mov dword [esp + 0x8c], ebx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x1c]
and eax, dword [ecx*4 + 0x5a25b8]
mov ecx, dword [esp + 0x58]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa4], ecx
cmp ebx, 0x20
jbe 0x538f02
mov edi, 0x5a2638
jmp 0x538f47
cmp edi, dword [esp + 0x98]
jb 0x538f17
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x538f37
cmp edi, esi
je 0x538f4e
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x538f2c
mov ecx, edi
sub ecx, esi
lea eax, [ecx*8]
sub edi, ecx
sub ebx, eax
mov eax, dword [edi]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], edi
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add edx, ecx
mov esi, dword [esp + 0x14]
add eax, ecx
movq xmm0, qword [esp + 0x70]
mov ebp, edx
sub ebp, dword [esp + 0x20]
add esi, ecx
movq qword [esp + 0x7c], xmm0
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x54], eax
cmp eax, dword [esp + 0x50]
ja 0x5391a2
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add ecx, esi
add eax, 0xffffffe0
cmp ecx, eax
ja 0x5391a2
mov ecx, dword [esp + 0x3c]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x18]
cmp ecx, eax
jb 0x5391a2
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x28]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x539012
mov edx, dword [esp + 0x2c]
add ecx, 0x10
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea esi, [ecx + eax]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x1c]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x53900e
mov eax, dword [esp + 0x58]
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 0x538ff6
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], eax
mov eax, edx
sub eax, dword [esp + 0x44]
cmp ecx, eax
jbe 0x539090
mov eax, edx
sub eax, dword [esp + 0x5c]
cmp ecx, eax
ja 0x539208
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
add ebp, eax
lea eax, [ecx + ebp]
cmp eax, dword [esp + 0x40]
ja 0x539065
push ecx
push ebp
push edx
call fcn.00548d90
mov ebp, dword [esp + 0x24]
add esp, 0xc
jmp 0x5391e2
mov esi, dword [esp + 0x40]
sub esi, ebp
push esi
push ebp
push edx
call fcn.00548d90
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov eax, dword [esp + 0x14]
add edx, esi
mov ebp, dword [esp + 0x44]
sub eax, esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
jmp 0x539097
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
cmp ecx, 0x10
jb 0x5390da
lea esi, [eax + edx]
movups xmm0, xmmword [ebp]
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x5390cd
lea eax, [edx + 0x10]
lea ecx, [ebp + 0x10]
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, esi
jb 0x5390b5
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
jmp 0x5391e2
cmp ecx, 8
jae 0x539110
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 0x53911b
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 0x5390d1
lea esi, [eax - 8]
add ebp, 8
lea eax, [edx + 8]
mov ecx, eax
add esi, eax
sub ecx, ebp
cmp ecx, 0x10
jge 0x539160
sub ebp, eax
nop word [eax + eax]
mov ecx, dword [eax + ebp]
mov edx, dword [eax + ebp + 4]
mov dword [eax], ecx
mov dword [eax + 4], edx
add eax, 8
cmp eax, esi
jb 0x539140
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
jmp 0x5391e2
mov ecx, dword [esp + 0x14]
movups xmm0, xmmword [ebp]
add ecx, 0xfffffff8
movups xmmword [eax], xmm0
cmp ecx, 0x10
jle 0x5390cd
add eax, 0x10
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, esi
jb 0x539180
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
jmp 0x5391e2
push dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x4c]
push dword [esp + 0x60]
mov ebp, dword [esp + 0x20]
push dword [esp + 0x4c]
push dword [esp + 0x5c]
push eax
sub esp, 0xc
mov eax, esp
push dword [esp + 0x5c]
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 + 0x2c], eax
cmp esi, 0xffffff88
ja 0x53920d
add ebp, esi
sub dword [esp + 0xdc], 1
mov dword [esp + 0x18], ebp
je 0x539211
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
jmp 0x538950
mov esi, 0xffffffec
mov eax, esi
jmp 0x539286
lea eax, [esp + 0x88]
push eax
call fcn.0052fa00
add esp, 4
test eax, eax
je 0x538846
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0x50]
mov dword [ecx + 0x6830], eax
mov eax, dword [esp + 0xbc]
mov dword [ecx + 0x6834], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x682c], edx
mov ecx, dword [esp + 0x3c]
sub ebx, eax
sub ecx, ebp
cmp ebx, ecx
jbe 0x53926f
mov eax, 0xffffffba
jmp 0x539286
test ebp, ebp
je 0x539280
push ebx
push eax
push ebp
call fcn.00548d90
add esp, 0xc
add ebp, ebx
sub ebp, dword [esp + 0x6c]
mov eax, ebp
mov ecx, dword [esp + 0xc0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00423495
add esp, 0xb4
ret