Function at 0x49a630
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x18
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push ebx
push ebp
push esi
push edi
mov dword [eax], 0
mov edi, dword [ecx + 0xc]
cmp edi, 1
mov dword [esp + 0x20], edi
jl 0x49a682
cmp edi, 0x63
jg 0x49a682
push 0x10000
call fcn.00487e70
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
jne 0x49a68c
push str.Out_of_memory._Program_abort.
push 0x64
call fcn.004a6ea0
push eax
push 1
call fcn.004a3640
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret
xor ebx, ebx
mov esi, eax
test edi, edi
jl 0x49ab34
lea ebp, [eax + 1]
lea edx, [eax + 2]
lea ecx, [eax + 0xa]
add eax, 9
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
jmp 0x49a6b6
mov edi, dword [esp + 0x20]
cmp ebx, edi
jge 0x49a6c8
mov ecx, dword [esp + 0x2c]
mov dl, byte [ebx + ecx + 0x20]
mov byte [esp + 0x13], dl
jmp 0x49a6da
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov al, byte [ebx + edx + 0x1f]
mov byte [esp + 0x13], al
mov dl, al
test ebx, ebx
jne 0x49a81d
mov eax, dword [0x594ce8]
test eax, eax
je 0x49a79b
mov eax, dword [ecx + 0x3b71c]
test eax, eax
je 0x49a79b
mov edi, dword [eax + 0x218]
test edi, edi
je 0x49a793
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xd
jne 0x49a793
mov eax, dword [esp + 0x2c]
mov byte [esi], 2
mov ecx, dword [eax + 0x3b71c]
mov edx, dword [ecx + 0x218]
mov ecx, ebp
mov edi, dword [edx]
mov dword [ecx], edi
mov di, word [edx + 4]
mov word [ecx + 4], di
mov dl, byte [edx + 6]
mov byte [esi + 8], 2
mov byte [ecx + 6], dl
mov eax, dword [eax + 0x3b71c]
mov ecx, dword [eax + 0x218]
mov eax, dword [esp + 0x1c]
add ecx, 7
mov edx, eax
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [esp + 0x18]
mov cx, word [ecx + 4]
mov word [edx + 4], cx
mov edx, dword [esp + 0x14]
mov ecx, 0x10
add edi, ecx
add edx, ecx
add eax, ecx
add esi, ecx
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov dl, byte [esp + 0x13]
mov dword [esp + 0x1c], eax
add ebp, ecx
jmp 0x49a797
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
cmp dl, 1
jne 0x49a7a8
mov byte [esi], 0x21
mov byte [esi + 3], dl
jmp 0x49a7e9
cmp dl, 2
je 0x49a7e2
cmp dl, 3
je 0x49a7e2
cmp dl, 0x99
je 0x49a7e2
cmp dl, 4
je 0x49a7d9
cmp dl, 8
je 0x49a7d9
cmp dl, 5
je 0x49a7d9
cmp dl, 6
je 0x49a7d9
cmp dl, 7
je 0x49a7d9
cmp dl, 0x20
jne 0x49ab5d
mov byte [esi], 0x41
mov byte [esi + 3], 0x34
jmp 0x49a7e9
mov byte [esi], 0x41
mov byte [esi + 3], 0x14
mov eax, dword [0x594ce8]
test eax, eax
je 0x49a7f6
or byte [esi + 3], 0x40
mov eax, dword [esp + 0x1c]
add esi, 8
add eax, 8
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
add eax, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
add eax, 8
add ebp, 8
mov dword [esp + 0x14], eax
mov eax, dword [0x594ce8]
test eax, eax
je 0x49a8e6
cmp ebx, edi
je 0x49a8e6
mov eax, dword [ecx + ebx*4 + 0x3b720]
test eax, eax
je 0x49a8e6
mov eax, dword [eax + 0x218]
test eax, eax
je 0x49a8e6
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xc
jne 0x49a8de
mov edx, dword [esp + 0x2c]
mov al, bl
inc al
mov byte [esi], 3
mov byte [ebp], al
mov ecx, dword [edx + ebx*4 + 0x3b720]
mov edx, dword [ecx + 0x218]
mov ecx, dword [esp + 0x14]
mov edi, dword [edx]
mov dword [ecx], edi
mov dx, word [edx + 4]
mov byte [esi + 8], 3
mov word [ecx + 4], dx
mov ecx, dword [esp + 0x1c]
mov byte [ecx], al
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + ebx*4 + 0x3b720]
mov eax, dword [edx + 0x218]
mov edx, dword [esp + 0x18]
add eax, 6
mov edi, dword [eax]
mov dword [edx], edi
mov ax, word [eax + 4]
mov edi, edx
mov word [edx + 4], ax
mov edx, dword [esp + 0x14]
mov eax, 0x10
add edx, eax
add ecx, eax
add edi, eax
add esi, eax
mov dword [esp + 0x14], edx
mov dl, byte [esp + 0x13]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edi
add ebp, eax
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
test ebx, ebx
je 0x49a8f9
mov eax, dword [ecx + ebx*4 + 0x3a4]
test eax, eax
jle 0x49a9fb
cmp ebx, edi
je 0x49a9fb
cmp dl, 1
jne 0x49a916
mov dl, bl
mov byte [esi], 0x21
inc dl
mov byte [esi + 3], 0
mov byte [ebp], dl
jmp 0x49a965
cmp dl, 2
je 0x49a957
cmp dl, 3
je 0x49a957
cmp dl, 0x99
je 0x49a957
cmp dl, 4
je 0x49a947
cmp dl, 8
je 0x49a947
cmp dl, 5
je 0x49a947
cmp dl, 6
je 0x49a947
cmp dl, 7
je 0x49a947
cmp dl, 0x20
jne 0x49ab5d
mov al, bl
mov byte [esi], 0x41
inc al
mov byte [esi + 3], 0x21
mov byte [ebp], al
jmp 0x49a965
mov dl, bl
mov byte [esi], 0x41
inc dl
mov byte [esi + 3], 0x11
mov byte [ebp], dl
test ebx, ebx
jne 0x49a96d
xor edi, edi
jmp 0x49a985
mov eax, dword [esp + 0x2c]
mov edi, dword [ecx + ebx*4 + 0x214]
sub edi, dword [eax + ebx*4 + 0x3a4]
add edi, 0x96
mov eax, 0x1b4e81b5
imul edi
sar edx, 3
mov ecx, edx
mov eax, 0x88888889
shr ecx, 0x1f
add edx, ecx
mov ecx, edx
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov byte [esi + 5], dl
mov ecx, 0x3c
cdq
idiv ecx
mov eax, edi
mov ecx, 0x4b
mov edi, dword [esp + 0x18]
mov byte [esi + 6], dl
cdq
idiv ecx
mov ecx, dword [esp + 0x1c]
mov eax, 8
add ecx, eax
add edi, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x20]
mov byte [esi + 7], dl
mov edx, dword [esp + 0x14]
add edx, eax
add esi, eax
mov dword [esp + 0x14], edx
mov dl, byte [esp + 0x13]
add ebp, eax
cmp dl, 1
jne 0x49aa14
cmp ebx, edi
jne 0x49aa0b
mov byte [esi], dl
mov byte [esi + 3], dl
jmp 0x49aa69
mov byte [esi], 0x21
mov byte [esi + 3], 0
jmp 0x49aa69
cmp dl, 2
je 0x49aa58
cmp dl, 3
je 0x49aa58
cmp dl, 0x99
je 0x49aa58
cmp dl, 4
je 0x49aa45
cmp dl, 8
je 0x49aa45
cmp dl, 5
je 0x49aa45
cmp dl, 6
je 0x49aa45
cmp dl, 7
je 0x49aa45
cmp dl, 0x20
jne 0x49ab5d
cmp ebx, edi
mov byte [esi], 0x41
jne 0x49aa52
mov byte [esi + 3], 0x34
jmp 0x49aa69
mov byte [esi + 3], 0x21
jmp 0x49aa69
cmp ebx, edi
mov byte [esi], 0x41
jne 0x49aa65
mov byte [esi + 3], 0x14
jmp 0x49aa69
mov byte [esi + 3], 0x11
mov edx, dword [esp + 0x14]
mov al, bl
inc al
cmp ebx, edi
mov byte [esp + 0x13], al
mov byte [ebp], al
mov byte [edx], 1
jge 0x49aa8e
mov ecx, dword [ecx + ebx*4 + 0x214]
add ecx, 0x96
jmp 0x49aaac
mov eax, dword [ecx + ebx*4 + 0x9e0]
mov edx, dword [ecx + ebx*4 + 0x6c0]
mov ecx, dword [ecx + ebx*4 + 0x210]
add eax, edx
lea ecx, [eax + ecx + 0x96]
mov eax, 0x1b4e81b5
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x88888889
mov edi, edx
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
mov byte [esi + 5], dl
mov edi, 0x3c
cdq
idiv edi
mov eax, ecx
mov ecx, 0x4b
mov byte [esi + 6], dl
cdq
idiv ecx
mov eax, dword [esp + 0x20]
cmp ebx, eax
mov byte [esi + 7], dl
jne 0x49aafd
mov byte [ebp], 0xaa
jmp 0x49ab04
mov dl, byte [esp + 0x13]
mov byte [ebp], dl
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ecx, 8
add edx, ecx
add esi, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
add edi, ecx
add edx, ecx
add ebp, ecx
inc ebx
cmp ebx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
jle 0x49a6b2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
sub esi, eax
push esi
mov dword [ecx], eax
push eax
mov dword [edx], esi
call fcn.0044dc50
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [esp + 0x24]
push eax
call fcn.00487ea0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret