Function at 0x537760
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xb4
mov eax, dword [0x5e1040]
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 0x5377ba
test eax, eax
lea ebx, [eax + ebp]
cmovle ebx, ebp
mov dword [esp + 0x3c], ebx
jmp 0x5377c4
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 0x5382ac
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 0x537896
mov dword [esp + 0x94], edx
lea ebx, [edx + 4]
mov dword [esp + 0x98], ebx
cmp esi, 4
jb 0x5378a0
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 0x537896
movzx eax, al
bsr ecx, eax
mov eax, 8
sub eax, ecx
mov dword [esp + 0x8c], eax
cmp esi, 0xffffff88
jbe 0x53791a
mov eax, 0xffffffec
jmp 0x5382d6
movzx ecx, byte [edx]
lea eax, [esi - 2]
mov dword [esp + 0x90], edx
mov dword [esp + 0x88], ecx
cmp eax, 5
ja case.default.0x5378b9
jmp dword [eax*4 + 0x5382f0]
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 0x537896
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.00538570
push dword [esi + 8]
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.00538570
push dword [esi + 4]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.00538570
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 0x537d33
cmp dword [esp + 0xe0], 0
je 0x537b41
cmp al, 0x19
jb 0x537b41
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 0x537ad2
mov edi, 0x5a16c8
jmp 0x537b1b
cmp edi, dword [esp + 0x98]
jb 0x537ae7
mov eax, ebx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x537b10
cmp edi, esi
jne 0x537af4
cmp ebx, 0x20
jb 0x537b22
mov ecx, ebx
jmp 0x537b22
shr ecx, 3
mov eax, edi
sub eax, ecx
cmp eax, esi
jae 0x537b03
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 0x537bd6
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 0x537b7f
mov edi, 0x5a16c8
mov dword [esp + 0x90], edi
jmp 0x537bdd
cmp edi, dword [esp + 0x98]
jb 0x537b9f
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 0x537bcf
mov edx, dword [esp + 0x94]
cmp edi, edx
je 0x537bdd
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, edx
jae 0x537bbb
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 0x537c3c
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 0x537c62
cmp ebx, 0x20
jbe 0x537ded
mov edi, 0x5a16c8
mov dword [esp + 0x90], edi
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x88]
test dl, dl
je 0x537c9a
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 0x537e5f
mov edi, 0x5a16c8
mov dword [esp + 0x90], edi
mov ebp, dword [esp + 0x88]
cmp dword [esp + 0xdc], 1
je 0x537f9e
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 + 0x5a1648]
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 + 0x5a1648]
movzx ecx, cx
add ecx, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xac], ecx
cmp edx, 0x20
jbe 0x537eca
mov edi, 0x5a16c8
jmp 0x537f08
mov esi, dword [esp + 0x88]
xor edx, edx
test ecx, ecx
sete dl
test al, al
jne 0x537d70
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 0x537bfd
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 0x537db8
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 0x537bf2
mov ebp, dword [esp + ecx*4 + 0xb4]
test ebp, ebp
sete al
sub ebp, eax
mov dword [esp + 0x20], ebp
cmp ecx, 1
je 0x537beb
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0xbc], eax
jmp 0x537bf2
mov esi, dword [esp + 0x94]
cmp edi, dword [esp + 0x98]
jb 0x537e23
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 0x537c70
cmp edi, esi
je 0x537c69
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537e3c
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 0x537c70
cmp edi, dword [esp + 0x98]
jb 0x537e8e
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 0x537cb6
cmp edi, esi
je 0x537caf
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537ea7
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 0x537cb6
cmp edi, dword [esp + 0x98]
jb 0x537edf
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x537eff
cmp edi, esi
je 0x537f0f
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537ef4
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 + 0x5a1648]
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 0x537f52
mov edi, 0x5a16c8
jmp 0x537f97
cmp edi, dword [esp + 0x98]
jb 0x537f67
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
jmp 0x537f87
cmp edi, esi
je 0x537f9e
mov ecx, ebx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, esi
jae 0x537f7c
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 0x5381f2
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
add ecx, esi
add eax, 0xffffffe0
cmp ecx, eax
ja 0x5381f2
mov ecx, dword [esp + 0x3c]
lea eax, [esi + 0x20]
sub ecx, dword [esp + 0x18]
cmp ecx, eax
jb 0x5381f2
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 0x538062
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 0x53805e
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 0x538046
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 0x5380e0
mov eax, edx
sub eax, dword [esp + 0x5c]
cmp ecx, eax
ja 0x538258
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 0x5380b5
push ecx
push ebp
push edx
call fcn.00547de0
mov ebp, dword [esp + 0x24]
add esp, 0xc
jmp 0x538232
mov esi, dword [esp + 0x40]
sub esi, ebp
push esi
push ebp
push edx
call fcn.00547de0
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 0x5380e7
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
cmp ecx, 0x10
jb 0x53812a
lea esi, [eax + edx]
movups xmm0, xmmword [ebp]
movups xmmword [edx], xmm0
cmp eax, 0x10
jle 0x53811d
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 0x538105
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
jmp 0x538232
cmp ecx, 8
jae 0x538160
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 + 0x5a1508]
mov byte [edx + 3], al
mov eax, dword [ebp]
sub ebp, dword [ecx*4 + 0x5a1528]
mov dword [edx + 4], eax
jmp 0x53816b
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 0x538121
lea esi, [eax - 8]
add ebp, 8
lea eax, [edx + 8]
mov ecx, eax
add esi, eax
sub ecx, ebp
cmp ecx, 0x10
jge 0x5381b0
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 0x538190
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
jmp 0x538232
mov ecx, dword [esp + 0x14]
movups xmm0, xmmword [ebp]
add ecx, 0xfffffff8
movups xmmword [eax], xmm0
cmp ecx, 0x10
jle 0x53811d
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 0x5381d0
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
jmp 0x538232
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.00538310
mov esi, eax
add esp, 0x28
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
cmp esi, 0xffffff88
ja 0x53825d
add ebp, esi
sub dword [esp + 0xdc], 1
mov dword [esp + 0x18], ebp
je 0x538261
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
jmp 0x5379a0
mov esi, 0xffffffec
mov eax, esi
jmp 0x5382d6
lea eax, [esp + 0x88]
push eax
call fcn.0052ea50
add esp, 4
test eax, eax
je 0x537896
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 0x5382bf
mov eax, 0xffffffba
jmp 0x5382d6
test ebp, ebp
je 0x5382d0
push ebx
push eax
push ebp
call fcn.00547de0
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.004224b5
add esp, 0xb4
ret