Function at 0x53c170
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x118
push esi
push edi
mov edi, dword [esp + 0x128]
mov esi, eax
movzx eax, word [edi]
sub eax, dword [esp + 0x130]
mov dword [esp + 0xc], eax
jns 0x53c19f
pop edi
mov eax, 0x236
pop esi
add esp, 0x118
ret
mov ecx, dword [esp + 0x12c]
push ebx
push ebp
lea eax, [esp + 0x8c]
push eax
push ecx
mov eax, edi
call fcn.0053bf10
mov ebx, dword [esp + 0x1c]
mov edx, dword [esi]
mov eax, dword [esi + 4]
push ebx
push esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
call fcn.0053b560
movzx esi, word [esp + 0x52]
mov ecx, 0x1f
sub ecx, esi
and ecx, 0xfffffff8
add esi, ecx
lea edx, [esp + 0x4c]
push esi
push edx
call fcn.0053b5a0
mov ebp, eax
mov eax, dword [esp + 0x14c]
movzx ecx, byte [eax]
add eax, 1
mov dword [esp + 0x14c], eax
movzx eax, byte [edi + 0x10]
add eax, 1
sub ebx, esi
mov dword [esp + 0x48], eax
movzx eax, byte [edi + 0xa]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x144]
mov edx, ebx
lea ecx, [edx + ecx*4]
movzx edx, word [eax*8 + 0x66c4bc]
lea eax, [eax*8 + 0x66c4b8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax]
movzx eax, word [eax + 6]
add esp, 0x18
test ecx, ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
je 0x53c641
movzx eax, word [edi + 2]
test eax, eax
mov ecx, dword [esp + 0x8c]
lea edx, [esp + 0x90]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x38], eax
je 0x53c626
lea ecx, [ecx]
mov eax, dword [esp + 0x14]
mov edx, 1
sub dword [esp + 0x38], edx
lea ecx, [esi + eax]
test ecx, ecx
jle 0x53c61b
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x10], ecx
jne 0x53c356
mov eax, dword [esp + 0x134]
movzx edi, byte [eax]
add eax, edx
sub dword [esp + 0x30], edx
lea ecx, [ecx + edi*4]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x134], eax
jne 0x53c339
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x53c2f1
mov ecx, dword [esp + 0x130]
movzx ecx, byte [ecx + 0x11]
add ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x53c2f9
mov dword [esp + 0x30], 0
add eax, edx
mov edx, dword [esp + 0x130]
mov dword [esp + 0x48], eax
movzx eax, byte [edx + eax + 0xa]
mov ecx, dword [eax*8 + 0x66c4b8]
test ecx, ecx
movzx edx, word [eax*8 + 0x66c4bc]
lea eax, [eax*8 + 0x66c4b8]
movzx eax, word [eax + 6]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
je 0x53c641
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
cmp dword [esp + 0x18], eax
je 0x53c351
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
add dword [esp + 0x20], 4
cmp esi, 0x15
jge 0x53c37f
mov edi, 0x1f
sub edi, esi
and edi, 0xfffffff8
lea edx, [esp + 0x3c]
push edi
push edx
call fcn.0053b5a0
mov ecx, edi
shl ebp, cl
add esp, 8
add esi, edi
or ebp, eax
sub dword [esp + 0x14], edi
mov eax, dword [esp + 0x2c]
mov ecx, esi
sub ecx, eax
mov edx, ebp
shr edx, cl
mov edi, ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
mov ebx, 1
shl ebx, cl
sub ebx, 1
and edx, ebx
lea ebx, [eax + edx*2]
movzx eax, word [ebx]
test al, 1
jne 0x53c3ee
lea esp, [esp]
movzx edx, ax
mov eax, edx
shr eax, 1
and eax, 7
mov esi, edi
sub edi, eax
mov ecx, edi
mov ebx, ebp
shr ebx, cl
mov ecx, 1
mov dword [esp + 0x34], ecx
mov ecx, eax
mov eax, dword [esp + 0x34]
shl eax, cl
mov ecx, dword [esp + 0x44]
shr edx, 4
sub eax, 1
and ebx, eax
add ebx, edx
movzx eax, word [ecx + ebx*2]
test al, 1
lea ebx, [ecx + ebx*2]
je 0x53c3b0
movzx eax, word [ebx]
mov ecx, dword [esp + 0x28]
mov edx, eax
shr edx, 1
and edx, 7
sub esi, edx
shr eax, 4
test ecx, ecx
je 0x53c55f
and eax, 0xf
mov edi, eax
je 0x53c4a8
cmp edi, 0xf
je 0x53c443
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x1c], eax
je 0x53c42e
mov eax, dword [esp + edi*4 + 0x4c]
jmp 0x53c48e
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, edi
call fcn.0053c0d0
mov dword [esp + edi*4 + 0x4c], eax
jmp 0x53c48e
add ecx, 2
cmp esi, ecx
jae 0x53c466
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0053b5a0
shl ebp, 0x10
add esp, 8
or ebp, eax
add esi, 0x10
sub dword [esp + 0x14], 0x10
mov eax, dword [esp + 0x28]
sub esi, eax
mov ecx, esi
mov edx, ebp
shr edx, cl
mov ecx, eax
mov eax, dword [esp + 0x18]
mov edi, 1
shl edi, cl
sub edi, 1
and edx, edi
add edx, 0xf
mov ecx, edx
call fcn.0053c0d0
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
je 0x53c4a0
neg eax
mov edx, dword [esp + 0x10]
mov dword [edx], eax
jmp 0x53c4b2
mov edx, dword [esp + 0x10]
mov dword [edx], 0
movzx ebx, word [ebx]
shr ebx, 8
and ebx, 0xf
je 0x53c5bd
cmp ebx, 0xf
je 0x53c4f2
mov ecx, ebx
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x1c]
test ecx, eax
je 0x53c4dd
mov eax, dword [esp + ebx*4 + 0x4c]
jmp 0x53c545
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.0053c0d0
mov dword [esp + ebx*4 + 0x4c], eax
jmp 0x53c541
mov edx, dword [esp + 0x28]
add edx, 1
cmp esi, edx
jae 0x53c519
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0053b5a0
shl ebp, 0x10
add esp, 8
or ebp, eax
add esi, 0x10
sub dword [esp + 0x14], 0x10
mov eax, dword [esp + 0x28]
sub esi, eax
mov ecx, esi
mov edx, ebp
shr edx, cl
mov ecx, eax
mov eax, dword [esp + 0x18]
mov edi, 1
shl edi, cl
sub edi, 1
and edx, edi
add edx, 0xf
mov ecx, edx
call fcn.0053c0d0
mov edx, dword [esp + 0x10]
add esi, 0xffffffff
mov edi, 1
mov ecx, esi
shl edi, cl
test ebp, edi
je 0x53c557
neg eax
mov dword [edx + 4], eax
jmp 0x53c609
and eax, 0xf
mov edi, eax
jne 0x53c572
mov edx, dword [esp + 0x10]
mov dword [edx], 0
jmp 0x53c5b2
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x1c], eax
je 0x53c587
mov eax, dword [esp + edi*4 + 0x4c]
jmp 0x53c59a
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, edi
call fcn.0053c0d0
mov dword [esp + edi*4 + 0x4c], eax
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
je 0x53c5ac
neg eax
mov edx, dword [esp + 0x10]
mov dword [edx], eax
movzx ebx, word [ebx]
shr ebx, 8
and ebx, 0xf
jne 0x53c5c6
mov dword [edx + 4], 0
jmp 0x53c609
mov eax, 1
mov ecx, ebx
shl eax, cl
test dword [esp + 0x1c], eax
je 0x53c5db
mov ebx, dword [esp + ebx*4 + 0x4c]
jmp 0x53c5f4
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.0053c0d0
mov edx, dword [esp + 0x10]
mov dword [esp + ebx*4 + 0x4c], eax
mov ebx, eax
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
je 0x53c606
neg ebx
mov dword [edx + 4], ebx
add edx, 8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x10], edx
jne 0x53c290
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x130]
mov ecx, dword [esp + 0x14]
lea eax, [esi + ecx]
test eax, eax
jge 0x53c651
pop ebp
pop ebx
pop edi
mov eax, 0x238
pop esi
add esp, 0x118
ret
pop ebp
pop ebx
pop edi
mov eax, 0x237
pop esi
add esp, 0x118
ret
movzx edx, byte [edi + 8]
and edx, 1
mov eax, dword [edx*4 + 0x66c4ac]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov ecx, 1
call fcn.0053c0d0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
lea eax, [esi + ecx]
test eax, eax
jle 0x53c849
jmp 0x53c690
mov eax, dword [esp + 0x12c]
add eax, 0x8f0
cmp ebx, eax
ja 0x53c849
cmp esi, 0xa
jge 0x53c6c5
lea edx, [esp + 0x3c]
push 0x10
push edx
call fcn.0053b5a0
shl ebp, 0x10
add esp, 8
or ebp, eax
add esi, 0x10
sub dword [esp + 0x14], 0x10
lea ecx, [esi - 4]
mov eax, ebp
shr eax, cl
mov ecx, dword [esp + 0x2c]
and eax, 0xf
lea edi, [ecx + eax*2]
movzx eax, word [edi]
test al, 1
jne 0x53c714
movzx edx, ax
mov eax, edx
shr eax, 1
and eax, 7
sub esi, 4
mov ecx, esi
sub ecx, eax
mov edi, ebp
shr edi, cl
mov ecx, 1
mov dword [esp + 0x34], ecx
mov ecx, eax
mov eax, dword [esp + 0x34]
shl eax, cl
shr edx, 4
sub eax, 1
and edi, eax
add edi, edx
mov edx, dword [esp + 0x2c]
lea edi, [edx + edi*2]
movzx eax, byte [edi]
mov edx, dword [esp + 0x24]
shr eax, 1
and eax, 7
sub esi, eax
cmp ebx, edx
jne 0x53c768
mov eax, dword [esp + 0x134]
movzx ecx, byte [eax]
add eax, 1
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp dword [esp + 0x18], eax
lea edx, [edx + ecx*4]
mov dword [esp + 0x24], edx
je 0x53c763
mov ecx, 1
mov dword [esp + 0x18], eax
call fcn.0053c0d0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
add dword [esp + 0x20], 4
test byte [edi], 0x10
je 0x53c785
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, dword [esp + 0x10]
je 0x53c787
neg eax
jmp 0x53c787
xor eax, eax
mov dword [ebx], eax
test byte [edi], 0x20
je 0x53c7a6
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, dword [esp + 0x10]
je 0x53c7a8
neg eax
jmp 0x53c7a8
xor eax, eax
mov dword [ebx + 4], eax
add ebx, 8
cmp ebx, edx
jne 0x53c7f0
mov eax, dword [esp + 0x134]
movzx ecx, byte [eax]
add eax, 1
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp dword [esp + 0x18], eax
lea edx, [edx + ecx*4]
mov dword [esp + 0x24], edx
je 0x53c7eb
mov ecx, 1
mov dword [esp + 0x18], eax
call fcn.0053c0d0
mov dword [esp + 0x10], eax
add dword [esp + 0x20], 4
test byte [edi], 0x40
je 0x53c80f
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
mov edx, dword [esp + 0x10]
mov eax, edx
je 0x53c815
neg eax
jmp 0x53c815
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [ebx], eax
test byte [edi], 0x80
je 0x53c832
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, edx
je 0x53c834
neg eax
jmp 0x53c834
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [ebx + 4], eax
lea edx, [esi + ecx]
add ebx, 8
test edx, edx
jg 0x53c690
mov eax, dword [esp + 0x14]
add esi, eax
jns 0x53c854
sub ebx, 0x10
mov eax, dword [esp + 0x12c]
add eax, 0x900
cmp ebx, eax
jae 0x53c872
xor ecx, ecx
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, eax
jb 0x53c866
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x118
ret