Function at 0x52ac20
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 0x52ac4f
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.0052a9c0
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.0052a010
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.0052a050
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 + 0x64d22c]
lea eax, [eax*8 + 0x64d228]
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 0x52b0f1
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 0x52b0d6
lea ecx, [ecx]
mov eax, dword [esp + 0x14]
mov edx, 1
sub dword [esp + 0x38], edx
lea ecx, [esi + eax]
test ecx, ecx
jle 0x52b0cb
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x10], ecx
jne 0x52ae06
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 0x52ade9
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x52ada1
mov ecx, dword [esp + 0x130]
movzx ecx, byte [ecx + 0x11]
add ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x52ada9
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 + 0x64d228]
test ecx, ecx
movzx edx, word [eax*8 + 0x64d22c]
lea eax, [eax*8 + 0x64d228]
movzx eax, word [eax + 6]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
je 0x52b0f1
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
cmp dword [esp + 0x18], eax
je 0x52ae01
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
add dword [esp + 0x20], 4
cmp esi, 0x15
jge 0x52ae2f
mov edi, 0x1f
sub edi, esi
and edi, 0xfffffff8
lea edx, [esp + 0x3c]
push edi
push edx
call fcn.0052a050
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 0x52ae9e
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 0x52ae60
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 0x52b00f
and eax, 0xf
mov edi, eax
je 0x52af58
cmp edi, 0xf
je 0x52aef3
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x1c], eax
je 0x52aede
mov eax, dword [esp + edi*4 + 0x4c]
jmp 0x52af3e
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, edi
call fcn.0052ab80
mov dword [esp + edi*4 + 0x4c], eax
jmp 0x52af3e
add ecx, 2
cmp esi, ecx
jae 0x52af16
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0052a050
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.0052ab80
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
je 0x52af50
neg eax
mov edx, dword [esp + 0x10]
mov dword [edx], eax
jmp 0x52af62
mov edx, dword [esp + 0x10]
mov dword [edx], 0
movzx ebx, word [ebx]
shr ebx, 8
and ebx, 0xf
je 0x52b06d
cmp ebx, 0xf
je 0x52afa2
mov ecx, ebx
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x1c]
test ecx, eax
je 0x52af8d
mov eax, dword [esp + ebx*4 + 0x4c]
jmp 0x52aff5
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.0052ab80
mov dword [esp + ebx*4 + 0x4c], eax
jmp 0x52aff1
mov edx, dword [esp + 0x28]
add edx, 1
cmp esi, edx
jae 0x52afc9
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.0052a050
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.0052ab80
mov edx, dword [esp + 0x10]
add esi, 0xffffffff
mov edi, 1
mov ecx, esi
shl edi, cl
test ebp, edi
je 0x52b007
neg eax
mov dword [edx + 4], eax
jmp 0x52b0b9
and eax, 0xf
mov edi, eax
jne 0x52b022
mov edx, dword [esp + 0x10]
mov dword [edx], 0
jmp 0x52b062
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x1c], eax
je 0x52b037
mov eax, dword [esp + edi*4 + 0x4c]
jmp 0x52b04a
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, edi
call fcn.0052ab80
mov dword [esp + edi*4 + 0x4c], eax
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
je 0x52b05c
neg eax
mov edx, dword [esp + 0x10]
mov dword [edx], eax
movzx ebx, word [ebx]
shr ebx, 8
and ebx, 0xf
jne 0x52b076
mov dword [edx + 4], 0
jmp 0x52b0b9
mov eax, 1
mov ecx, ebx
shl eax, cl
test dword [esp + 0x1c], eax
je 0x52b08b
mov ebx, dword [esp + ebx*4 + 0x4c]
jmp 0x52b0a4
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.0052ab80
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 0x52b0b6
neg ebx
mov dword [edx + 4], ebx
add edx, 8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x10], edx
jne 0x52ad40
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x130]
mov ecx, dword [esp + 0x14]
lea eax, [esi + ecx]
test eax, eax
jge 0x52b101
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 + 0x64d21c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov ecx, 1
call fcn.0052ab80
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
lea eax, [esi + ecx]
test eax, eax
jle 0x52b2f9
jmp 0x52b140
mov eax, dword [esp + 0x12c]
add eax, 0x8f0
cmp ebx, eax
ja 0x52b2f9
cmp esi, 0xa
jge 0x52b175
lea edx, [esp + 0x3c]
push 0x10
push edx
call fcn.0052a050
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 0x52b1c4
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 0x52b218
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 0x52b213
mov ecx, 1
mov dword [esp + 0x18], eax
call fcn.0052ab80
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
add dword [esp + 0x20], 4
test byte [edi], 0x10
je 0x52b235
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, dword [esp + 0x10]
je 0x52b237
neg eax
jmp 0x52b237
xor eax, eax
mov dword [ebx], eax
test byte [edi], 0x20
je 0x52b256
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, dword [esp + 0x10]
je 0x52b258
neg eax
jmp 0x52b258
xor eax, eax
mov dword [ebx + 4], eax
add ebx, 8
cmp ebx, edx
jne 0x52b2a0
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 0x52b29b
mov ecx, 1
mov dword [esp + 0x18], eax
call fcn.0052ab80
mov dword [esp + 0x10], eax
add dword [esp + 0x20], 4
test byte [edi], 0x40
je 0x52b2bf
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
mov edx, dword [esp + 0x10]
mov eax, edx
je 0x52b2c5
neg eax
jmp 0x52b2c5
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [ebx], eax
test byte [edi], 0x80
je 0x52b2e2
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, edx
je 0x52b2e4
neg eax
jmp 0x52b2e4
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [ebx + 4], eax
lea edx, [esi + ecx]
add ebx, 8
test edx, edx
jg 0x52b140
mov eax, dword [esp + 0x14]
add esi, eax
jns 0x52b304
sub ebx, 0x10
mov eax, dword [esp + 0x12c]
add eax, 0x900
cmp ebx, eax
jae 0x52b322
xor ecx, ecx
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, eax
jb 0x52b316
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x118
ret