Function at 0x551070
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 0x55109f
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.00550e10
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.00550460
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.005504a0
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 + 0x5ca95c]
lea eax, [eax*8 + 0x5ca958]
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 0x551541
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 0x551526
lea ecx, [ecx]
mov eax, dword [esp + 0x14]
mov edx, 1
sub dword [esp + 0x38], edx
lea ecx, [esi + eax]
test ecx, ecx
jle 0x55151b
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x10], ecx
jne 0x551256
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 0x551239
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x5511f1
mov ecx, dword [esp + 0x130]
movzx ecx, byte [ecx + 0x11]
add ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x5511f9
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 + 0x5ca958]
test ecx, ecx
movzx edx, word [eax*8 + 0x5ca95c]
lea eax, [eax*8 + 0x5ca958]
movzx eax, word [eax + 6]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
je 0x551541
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
cmp dword [esp + 0x18], eax
je 0x551251
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
add dword [esp + 0x20], 4
cmp esi, 0x15
jge 0x55127f
mov edi, 0x1f
sub edi, esi
and edi, 0xfffffff8
lea edx, [esp + 0x3c]
push edi
push edx
call fcn.005504a0
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 0x5512ee
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 0x5512b0
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 0x55145f
and eax, 0xf
mov edi, eax
je 0x5513a8
cmp edi, 0xf
je 0x551343
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x1c], eax
je 0x55132e
mov eax, dword [esp + edi*4 + 0x4c]
jmp 0x55138e
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, edi
call fcn.00550fd0
mov dword [esp + edi*4 + 0x4c], eax
jmp 0x55138e
add ecx, 2
cmp esi, ecx
jae 0x551366
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.005504a0
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.00550fd0
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
je 0x5513a0
neg eax
mov edx, dword [esp + 0x10]
mov dword [edx], eax
jmp 0x5513b2
mov edx, dword [esp + 0x10]
mov dword [edx], 0
movzx ebx, word [ebx]
shr ebx, 8
and ebx, 0xf
je 0x5514bd
cmp ebx, 0xf
je 0x5513f2
mov ecx, ebx
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x1c]
test ecx, eax
je 0x5513dd
mov eax, dword [esp + ebx*4 + 0x4c]
jmp 0x551445
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.00550fd0
mov dword [esp + ebx*4 + 0x4c], eax
jmp 0x551441
mov edx, dword [esp + 0x28]
add edx, 1
cmp esi, edx
jae 0x551419
lea eax, [esp + 0x3c]
push 0x10
push eax
call fcn.005504a0
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.00550fd0
mov edx, dword [esp + 0x10]
add esi, 0xffffffff
mov edi, 1
mov ecx, esi
shl edi, cl
test ebp, edi
je 0x551457
neg eax
mov dword [edx + 4], eax
jmp 0x551509
and eax, 0xf
mov edi, eax
jne 0x551472
mov edx, dword [esp + 0x10]
mov dword [edx], 0
jmp 0x5514b2
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x1c], eax
je 0x551487
mov eax, dword [esp + edi*4 + 0x4c]
jmp 0x55149a
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, edi
call fcn.00550fd0
mov dword [esp + edi*4 + 0x4c], eax
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
je 0x5514ac
neg eax
mov edx, dword [esp + 0x10]
mov dword [edx], eax
movzx ebx, word [ebx]
shr ebx, 8
and ebx, 0xf
jne 0x5514c6
mov dword [edx + 4], 0
jmp 0x551509
mov eax, 1
mov ecx, ebx
shl eax, cl
test dword [esp + 0x1c], eax
je 0x5514db
mov ebx, dword [esp + ebx*4 + 0x4c]
jmp 0x5514f4
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov ecx, ebx
call fcn.00550fd0
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 0x551506
neg ebx
mov dword [edx + 4], ebx
add edx, 8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x10], edx
jne 0x551190
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x130]
mov ecx, dword [esp + 0x14]
lea eax, [esi + ecx]
test eax, eax
jge 0x551551
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 + 0x5ca94c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov ecx, 1
call fcn.00550fd0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
lea eax, [esi + ecx]
test eax, eax
jle 0x551749
jmp 0x551590
mov eax, dword [esp + 0x12c]
add eax, 0x8f0
cmp ebx, eax
ja 0x551749
cmp esi, 0xa
jge 0x5515c5
lea edx, [esp + 0x3c]
push 0x10
push edx
call fcn.005504a0
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 0x551614
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 0x551668
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 0x551663
mov ecx, 1
mov dword [esp + 0x18], eax
call fcn.00550fd0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
add dword [esp + 0x20], 4
test byte [edi], 0x10
je 0x551685
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, dword [esp + 0x10]
je 0x551687
neg eax
jmp 0x551687
xor eax, eax
mov dword [ebx], eax
test byte [edi], 0x20
je 0x5516a6
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, dword [esp + 0x10]
je 0x5516a8
neg eax
jmp 0x5516a8
xor eax, eax
mov dword [ebx + 4], eax
add ebx, 8
cmp ebx, edx
jne 0x5516f0
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 0x5516eb
mov ecx, 1
mov dword [esp + 0x18], eax
call fcn.00550fd0
mov dword [esp + 0x10], eax
add dword [esp + 0x20], 4
test byte [edi], 0x40
je 0x55170f
add esi, 0xffffffff
mov edx, 1
mov ecx, esi
shl edx, cl
test ebp, edx
mov edx, dword [esp + 0x10]
mov eax, edx
je 0x551715
neg eax
jmp 0x551715
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [ebx], eax
test byte [edi], 0x80
je 0x551732
add esi, 0xffffffff
mov eax, 1
mov ecx, esi
shl eax, cl
test ebp, eax
mov eax, edx
je 0x551734
neg eax
jmp 0x551734
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [ebx + 4], eax
lea edx, [esi + ecx]
add ebx, 8
test edx, edx
jg 0x551590
mov eax, dword [esp + 0x14]
add esi, eax
jns 0x551754
sub ebx, 0x10
mov eax, dword [esp + 0x12c]
add eax, 0x900
cmp ebx, eax
jae 0x551772
xor ecx, ecx
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, eax
jb 0x551766
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x118
ret