Function at 0x416580
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
mov eax, edx
mov dword [esp + 0x10], ebx
xor esi, esi
mov dword [esp + 0x14], eax
xor edx, edx
mov dword [esp + 0x1c], esi
mov cl, byte [edi]
mov dword [esp + 0xc], esi
test cl, cl
je 0x416b7e
mov dword [esp + 0x38], 0x20
nop dword [eax]
inc edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x18], edi
cmp cl, 0x25
je 0x4165e3
cmp esi, eax
jae 0x4165d5
mov byte [esi + ebx], cl
inc esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], esi
jmp 0x416b74
mov esi, dword [esp + 0x38]
mov dword [esp + 0x28], edx
inc edx
mov dword [esp + 0x20], edx
mov eax, edi
cmp byte [edi], 0x2d
mov byte [esp + 0x30], 0
jne 0x416608
lea edi, [eax + 1]
mov byte [esp + 0x30], 1
mov dword [esp + 0x18], edi
mov cl, byte [edi]
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x41665b
mov ebx, 0x30
lea edx, [esp + 0x18]
cmp cl, bl
mov ecx, edi
push 0xa
cmovne ebx, esi
call fcn.00415da0
add esp, 4
mov dword [esp + 0x24], eax
test edx, edx
jne 0x41663e
cmp eax, 0xffffffff
ja 0x41663e
mov edi, dword [esp + 0x18]
jmp 0x416665
push str.overflow_is_detected
push 0xb
call fcn.00415070
mov edi, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x24], 0xffffffff
jmp 0x416665
mov dword [esp + 0x24], 0
mov bl, 0x20
cmp byte [edi], 0x2e
mov byte [esp + 0x34], bl
jne 0x416673
inc edi
mov dword [esp + 0x18], edi
mov al, byte [edi]
sub al, 0x30
cmp al, 9
ja 0x4166af
push 0xa
lea edx, [esp + 0x1c]
mov ecx, edi
call fcn.00415da0
add esp, 4
mov ecx, eax
test edx, edx
jne 0x41669c
cmp ecx, 0xffffffff
ja 0x41669c
mov edi, dword [esp + 0x18]
jmp 0x4166b2
push str.overflow_is_detected
push 0xb
call fcn.00415070
mov edi, dword [esp + 0x20]
add esp, 8
or ecx, 0xffffffff
mov dl, byte [edi]
cmp dl, 0x24
jne 0x4166cc
mov ecx, dword [esp + 0x24]
dec ecx
inc edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], edi
jmp 0x4165f0
mov esi, dword [esp + 0x1c]
inc edi
mov byte [esp + 0x2c], dl
mov dword [ebp + 8], edi
cmp dl, 0x6c
jne 0x4166f6
mov dl, byte [edi]
inc edi
mov byte [esp + 0x2c], dl
mov dword [ebp + 8], edi
cmp dl, 0x6c
jne 0x4166f6
mov dl, byte [edi]
inc edi
mov byte [esp + 0x2c], dl
mov dword [ebp + 8], edi
cmp dl, 0x25
jne 0x41671c
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
cmp esi, eax
jae 0x41670a
mov byte [esi + ebx], dl
mov edx, dword [esp + 0x3c]
inc esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], esi
jmp 0x416b74
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x28]
cmp eax, dword [edi + 0x104]
mov edi, dword [ebp + 8]
jae 0x416b68
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x28]
mov eax, dword [eax + 0x100]
mov edi, dword [eax + edi*8]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
mov eax, dword [eax + edi*8 + 4]
mov edi, dword [ebp + 8]
mov dword [esp + 0x3c], eax
movsx eax, dl
add eax, 0xffffffbd
cmp eax, 0x35
ja case.0x41676b.68
movzx eax, byte [eax + 0x416bb4]
jmp dword [eax*4 + 0x416b9c]
cmp byte [edi], 0x47
jne 0x416948
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc]
mov esi, dword [esp + 0x14]
inc edi
mov ebx, dword [esp + 0x10]
mov ecx, ebx
push 0
push dword [eax]
push 0x78
push 0x30
push 0
push 8
push esi
call fcn.00416340
mov eax, dword [esp + 0x28]
add esp, 0x1c
cmp eax, esi
jae 0x4167af
mov byte [eax + ebx], 0x2d
inc eax
mov ecx, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 4]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 4
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x28]
add esp, 0x1c
cmp eax, esi
jae 0x4167e2
mov byte [eax + ebx], 0x2d
inc eax
mov ecx, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 6]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 4
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x28]
add esp, 0x1c
cmp eax, esi
jae 0x416815
mov byte [eax + ebx], 0x2d
inc eax
mov ecx, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 8]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x34]
add esp, 0x1c
mov ecx, ebx
movzx eax, byte [eax + 9]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x28]
add esp, 0x1c
cmp eax, esi
jae 0x41686a
mov byte [eax + ebx], 0x2d
inc eax
mov ecx, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0xa]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x34]
add esp, 0x1c
mov ecx, ebx
movzx eax, byte [eax + 0xb]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x34]
add esp, 0x1c
mov ecx, ebx
movzx eax, byte [eax + 0xc]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x34]
add esp, 0x1c
mov ecx, ebx
movzx eax, byte [eax + 0xd]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x34]
add esp, 0x1c
mov ecx, ebx
movzx eax, byte [eax + 0xe]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
call fcn.00416340
mov eax, dword [esp + 0x34]
add esp, 0x1c
movzx eax, byte [eax + 0xf]
cdq
push edx
push eax
push 0x78
push 0x30
push 0
push 2
push esi
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.00416340
mov esi, dword [esp + 0x28]
add esp, 0x1c
mov dword [esp + 0x1c], esi
jmp 0x416b6c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp esi, ecx
jae 0x416958
mov byte [esi + eax], 0x30
inc esi
cmp esi, ecx
jae 0x416961
mov byte [eax + esi], 0x78
lea eax, [esi + 1]
mov byte [esp + 0x2c], 0x78
mov dword [esp + 0xc], eax
jmp 0x416973
mov ecx, dword [esp + 0x14]
push dword [esp + 0x3c]
mov ebx, dword [esp + 0x14]
push dword [esp + 0x1c]
push dword [esp + 0x34]
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x38]
push ecx
jmp 0x41692d
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
cmp esi, eax
jae 0x4169a5
mov ecx, dword [esp + 0x18]
mov byte [esi + ebx], cl
inc esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], esi
jmp 0x416b70
mov edx, dword [esp + 0x18]
cmp edx, 0x7f
jbe 0x4169f8
cmp edx, 0x7ff
ja 0x4169cd
mov ecx, 6
mov bl, 0xc0
jmp 0x4169fc
cmp edx, 0xffff
ja 0x4169de
mov ecx, 0xc
mov bl, 0xe0
jmp 0x4169fc
cmp edx, 0x10ffff
ja 0x4169ef
mov ecx, 0x12
mov bl, 0xf0
jmp 0x4169fc
mov edx, 0x3f
mov dword [esp + 0x18], edx
xor ecx, ecx
xor bl, bl
mov eax, dword [esp + 0x14]
cmp esi, eax
jae 0x416a17
mov eax, edx
shr eax, cl
or al, bl
mov ebx, dword [esp + 0x10]
mov byte [esi + ebx], al
mov eax, dword [esp + 0x14]
jmp 0x416a1b
mov ebx, dword [esp + 0x10]
inc esi
sub ecx, 6
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], esi
js 0x416b70
mov edi, esi
mov dword [esp + 0x28], esi
mov edx, esi
cmp edi, eax
jae 0x416a4e
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
shr eax, cl
and al, 0x3f
or al, 0x80
mov byte [esi + ebx], al
mov eax, dword [esp + 0x14]
sub ecx, 6
lea esi, [edx + 1]
mov dword [esp + 0xc], esi
mov edi, esi
mov edx, esi
mov dword [esp + 0x28], esi
jns 0x416a35
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], esi
jmp 0x416b70
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x28], str._null_
test eax, eax
mov edi, dword [esp + 0x28]
cmovne edi, eax
mov dword [esp + 0x28], edi
mov edi, dword [ebp + 8]
test ecx, ecx
je 0x416a9f
mov eax, dword [esp + 0x28]
cmp byte [eax + edx], 0
je 0x416a9f
inc edx
cmp edx, ecx
jb 0x416a94
mov eax, dword [esp + 0x24]
xor ecx, ecx
sub eax, edx
cmp edx, dword [esp + 0x24]
cmovb ecx, eax
cmp byte [esp + 0x30], 0
mov dword [esp + 0x24], ecx
jne 0x416ae2
test ecx, ecx
je 0x416add
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
dec ecx
cmp esi, eax
jae 0x416acd
mov byte [esi + edi], bl
inc esi
mov dword [esp + 0xc], esi
test ecx, ecx
jne 0x416ac5
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], esi
dec ecx
mov dword [esp + 0x24], ecx
test edx, edx
je 0x416b19
sub dword [esp + 0x28], esi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
cmp esi, eax
jae 0x416b04
mov al, byte [ecx + esi]
mov byte [esi + edi], al
mov eax, dword [esp + 0x14]
inc esi
mov dword [esp + 0xc], esi
sub edx, 1
jne 0x416af6
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], esi
cmp byte [esp + 0x30], 0
je 0x416b68
mov eax, dword [esp + 0x14]
test ecx, ecx
je 0x416b48
mov edi, dword [esp + 0x10]
nop dword [eax]
dec ecx
cmp esi, eax
jae 0x416b38
mov byte [esi + edi], bl
inc esi
mov dword [esp + 0xc], esi
test ecx, ecx
jne 0x416b30
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x10]
jmp 0x416b70
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
cmp esi, eax
jae 0x416b5d
mov byte [esi + ebx], dl
inc esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], esi
jmp 0x416b70
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov cl, byte [edi]
test cl, cl
jne 0x4165c0
cmp esi, eax
jae 0x416b8f
mov byte [esi + ebx], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebx + eax], 0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret