Function at 0x4d0140
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], edi
mov eax, dword [esi + 0x54]
mov edx, dword [eax + 0x10]
sub edx, 8
mov dword [esp + 0x10], edx
cmp dword [ebp + 0x10], edi
jle 0x4d0221
mov ecx, dword [ebp + 0xc]
lea edx, [ecx*4]
lea eax, [ecx*8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
nop dword [eax + eax]
mov eax, dword [esi + 0x64]
cmp dword [edx + eax], 0
jne 0x4d0203
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 0x10]
add eax, dword [esp + 0x14]
mov edi, dword [eax + 4]
cmp edi, 0xfffffff2
jae 0x4d01b2
mov edi, 0xe
jmp 0x4d01b4
not edi
mov eax, edi
or eax, 0x4780
mov word [esi + 0x7c], ax
mov ax, word [esi + 0x70]
add ax, cx
mov ecx, esi
add ax, word [esp + 0x18]
mov word [esi + 0x78], ax
mov eax, 4
mov word [esi + 0x7a], ax
call fcn.004e5830
mov ecx, eax
cmp edi, 2
ja 0x4d01f2
imul ecx, edi, 0xffffff
add ecx, 0x7fff
mov eax, dword [esi + 0x64]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [edx + eax], ecx
mov ecx, dword [ebp + 0xc]
add dword [esp + 0x14], 8
inc edi
add edx, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
cmp edi, dword [ebp + 0x10]
jl 0x4d0190
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, ecx
mov edi, dword [ebp + 0xc]
and eax, 6
cmp al, 6
jne 0x4d0286
dec dword [esi + 0xb8]
sar ecx, 3
cmp dword [esi + 0xb8], 0
jle 0x4d0829
sub dword [esi + 0x70], ecx
mov eax, ecx
add dword [esp + 0xc], ecx
neg eax
inc dword [ebp + 0x10]
dec ecx
shl eax, 2
add edi, ecx
add dword [esi + 0x64], eax
mov eax, dword [esi + 0x64]
mov dword [ebp + 0xc], edi
mov dword [eax + edi*4], 0x2007ffd
mov eax, dword [edx + 4]
and eax, 0xfffffff8
mov byte [esi + 0x75], 1
sub edx, eax
mov dword [esp + 0x10], edx
mov ecx, dword [edx + 4]
mov eax, ecx
and eax, 6
cmp al, 6
je 0x4d0230
cmp dword [esi + 0xb8], 0
jne 0x4d03aa
cmp dword [esi + 0x60], 0
je 0x4d03aa
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
and eax, 0xff
cmp eax, 0x49
je 0x4d02bf
cmp eax, 0x4a
je 0x4d02bf
cmp eax, 0x4b
je 0x4d02bf
cmp eax, 0x4c
jne 0x4d03aa
test byte [edx + 4], 3
jne 0x4d030b
cmp dword [esi + 0x924], 0
jne 0x4d03aa
cmp dword [esi + 0x928], 0
jne 0x4d03aa
mov eax, dword [esi + 0x2c]
and eax, 0xff
cmp eax, 0x49
je 0x4d03aa
cmp eax, 0x4a
je 0x4d03aa
cmp eax, 0x4b
je 0x4d03aa
cmp eax, 0x4c
je 0x4d03aa
xor ecx, ecx
test edi, edi
jle 0x4d038f
cmp edi, 4
jb 0x4d0380
mov edx, dword [esi + 0x64]
lea eax, [esi + 0x64]
mov dword [esp + 0x20], edx
lea esi, [edx - 4]
lea esi, [esi + edi*4]
mov dword [esp + 0x24], esi
mov esi, dword [ebp + 8]
cmp edx, eax
ja 0x4d0337
cmp dword [esp + 0x24], eax
jae 0x4d0380
mov eax, edi
and eax, 0x80000003
jns 0x4d0345
dec eax
or eax, 0xfffffffc
inc eax
sub edi, eax
add ecx, 4
cmp ecx, edi
jl 0x4d0347
lea eax, [edi + 3]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x20]
cdq
and edx, 3
lea ecx, [edx + eax]
xor eax, eax
sar ecx, 2
shl ecx, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
mov edi, dword [ebp + 0xc]
cmp ecx, edi
jge 0x4d038f
nop dword [eax + eax]
mov eax, dword [esi + 0x64]
mov dword [eax + ecx*4], 0
inc ecx
cmp ecx, edi
jl 0x4d0380
mov eax, dword [ebp + 0x10]
push 0
add eax, edi
push 7
push esi
mov dword [esi + 0x6c], eax
call fcn.004d0c30
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edx + 4]
mov eax, ecx
and eax, 7
cmp al, 3
jne 0x4d03e6
sar ecx, 3
add dword [esi + 0xb8], 0xffffffff
js 0x4d0829
sub dword [esi + 0x70], ecx
add edi, ecx
add dword [esp + 0xc], ecx
neg ecx
shl ecx, 2
add dword [esi + 0x64], ecx
mov eax, dword [edx + 4]
and eax, 0xfffffff8
mov dword [ebp + 0xc], edi
sub edx, eax
mov dword [esp + 0x10], edx
mov ecx, dword [edx + 4]
test cl, 3
jne 0x4d0679
mov ecx, dword [ecx - 4]
mov eax, ecx
shr eax, 0x18
test eax, eax
lea edi, [eax - 1]
mov eax, edi
mov dword [esp + 0xc], edi
cmove eax, dword [ebp + 0x10]
shr ecx, 8
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
movzx eax, cl
mov ecx, edx
mov dword [esp + 0x24], eax
lea eax, [eax*8 + 8]
sub ecx, eax
mov eax, dword [ecx]
mov ecx, dword [eax + 0x10]
sub ecx, 0x40
mov dword [esp + 0x14], ecx
test byte [ecx + 0x25], 8
jne 0x4d0831
cmp dword [esi + 0xb8], 0
jne 0x4d0517
cmp dword [esi + 0x60], 0
je 0x4d0517
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 0x10]
sub eax, 8
cmp edx, eax
jne 0x4d0517
cmp word [esi + 0x44], 0
jne 0x4d050e
movzx eax, word [esi + 0x176]
mov dword [esp + 0x20], eax
test eax, eax
je 0x4d050e
mov edx, dword [esi + 0x10]
mov dword [esp + 0x28], edx
nop dword [eax + eax]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
cmp dword [eax], ecx
jne 0x4d0502
movzx eax, word [esi + 0x15c]
xor ecx, ecx
test eax, eax
je 0x4d04fa
mov edi, dword [esp + 0x28]
mov esi, ecx
nop
lea edx, [edi + eax*8]
movzx eax, word [edx]
lea ecx, [esi + 1]
cmp eax, dword [esp + 0x20]
movzx eax, word [edx + 6]
cmovne ecx, esi
mov esi, ecx
test eax, eax
jne 0x4d04b0
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x18], esi
mov esi, dword [ebp + 8]
test ecx, ecx
je 0x4d04f7
mov eax, dword [esi + 0x58]
cmp eax, dword [esi + 0x920]
jne 0x4d0839
mov eax, dword [esi + 0xb4]
add eax, ecx
cmp eax, dword [esi + 0x63c]
jg 0x4d052f
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + 6]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4d0490
push esi
call fcn.004cb9f0
add esp, 4
xor eax, eax
cmp dword [esp + 0xc], eax
jle 0x4d0566
shl edi, 2
mov edx, dword [esi + 0x64]
cmp eax, dword [ebp + 0x10]
jge 0x4d0553
mov ecx, dword [edi + edx]
jmp 0x4d0558
mov eax, dword [ebp + 0x10]
add eax, edi
push esi
mov dword [esi + 0x6c], eax
call fcn.004cbb60
movzx eax, word [esi + 0x40]
push eax
push 5
push esi
call fcn.004d0c30
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x7fff
mov dword [edx + eax*4 - 4], ecx
add edi, 4
inc eax
cmp eax, dword [esp + 0xc]
jl 0x4d0522
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
add eax, ecx
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0xb8]
test eax, eax
jle 0x4d05a3
dec eax
mov dword [esi + 0xb8], eax
or eax, 0xffffffff
sub eax, ecx
add dword [esi + 0x70], eax
lea eax, [ecx*4]
mov ecx, 0xfffffffc
sub ecx, eax
add dword [esi + 0x64], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x924], 0
jne 0x4d05d5
cmp dword [esi + 0x928], 0
jne 0x4d05d5
mov eax, dword [esi + 0x2c]
and eax, 0xff
cmp eax, 0x49
je 0x4d05d5
cmp eax, 0x4a
je 0x4d05d5
cmp eax, 0x4b
je 0x4d05d5
cmp eax, 0x4c
jne 0x4d0841
cmp byte [esi + 0x75], 0
jne 0x4d0829
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 7]
inc eax
cmp eax, 0xfa
jae 0x4d0849
push 7
push ecx
push esi
call fcn.004e5d50
mov edi, eax
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
push 0x19
push esi
call fcn.004e5f60
mov ecx, 0xb85
mov word [esi + 0x78], di
add esp, 0x18
mov word [esi + 0x7c], cx
mov ecx, esi
mov word [esi + 0x7a], ax
call fcn.004e9100
mov ecx, dword [esi + 0x64]
mov eax, 0x7fff
mov edi, dword [esp + 0x24]
inc dword [esi + 0xbc]
mov word [esi + 0x914], ax
mov eax, dword [esp + 0xc]
shl eax, 2
push eax
lea eax, [ecx - 4]
mov byte [esi + 0x75], 1
push eax
lea eax, [ecx + edi*4]
push eax
call fcn.00512a40
lea eax, [edi*4 + 4]
push eax
mov eax, dword [esi + 0x64]
sub eax, 4
push 0
push eax
call fcn.00512700
add esp, 0x18
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, ecx
and al, 7
cmp al, 2
jne 0x4d0829
mov eax, dword [edx - 8]
sar ecx, 3
add dword [esi + 0xb8], 0xfffffffe
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
js 0x4d0829
mov edx, dword [esi + 0x64]
lea eax, [ecx*4]
sub dword [esi + 0x70], ecx
sub edx, eax
mov eax, edx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x64], eax
lea eax, [ecx - 2]
mov dword [esi + 0x6c], eax
mov eax, dword [esp + 0x28]
cmp eax, 0x402cbb
jne 0x4d06fb
cmp dword [ebp + 0x10], 0
mov eax, dword [edx - 4]
movzx edx, byte [eax - 3]
je 0x4d06ed
lea eax, [ecx + edi]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x14]
jmp 0x4d0811
mov eax, dword [esp + 0x14]
mov ecx, 0x7fff
jmp 0x4d0811
cmp eax, 0x402d97
je 0x4d03a4
cmp eax, 0x402c1f
jne 0x4d03a4
cmp dword [ebp + 0x10], 0
mov eax, dword [edx - 4]
movzx eax, byte [eax - 1]
mov dword [esp + 0x24], eax
je 0x4d0735
mov esi, dword [esp + 0x14]
lea eax, [ecx + edi]
mov eax, dword [esi + eax*4]
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], eax
jmp 0x4d073d
mov dword [esp + 0x18], 0x7fff
lea eax, [ecx - 2]
cmp dword [esp + 0x24], eax
je 0x4d07fb
mov eax, dword [esp + 0xc]
shl eax, 3
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x54]
mov edx, dword [eax + 0x10]
sub edx, dword [esp + 0x1c]
cmp dword [esi + 0x130], 0
jne 0x4d0829
cmp dword [ebp + 0x10], 0
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 - 8], esi
mov eax, dword [edx - 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [edx - 0xc]
mov dword [esp + 0x14], eax
je 0x4d079f
mov ecx, dword [edx + edi*8 + 4]
mov eax, dword [edx + edi*8]
mov dword [edx - 0xc], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx - 0x10], eax
jmp 0x4d07a6
mov dword [edx - 0xc], 0xffffffff
mov esi, dword [ebp + 8]
lea eax, [ecx*8]
sub edx, eax
mov eax, dword [esi + 0x54]
mov dword [eax + 0x10], edx
lea eax, [ecx - 2]
push eax
push dword [esp + 0x28]
push esi
call fcn.004d1060
mov edx, dword [esi + 0x54]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov edi, dword [edx + 0x10]
lea ecx, [eax*8]
mov eax, dword [esp + 0x28]
add edi, ecx
mov ecx, dword [esp + 0x1c]
add ecx, edi
mov dword [edx + 0x10], ecx
mov edx, dword [esp + 0x10]
mov dword [edi - 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [edi - 0xc], eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4d03a4
mov eax, dword [edx - 4]
movzx edx, byte [eax - 3]
mov eax, dword [esi + 0x64]
mov dword [eax + edx*4], ecx
cmp edx, dword [esi + 0x6c]
jb 0x4d03a4
lea eax, [edx + 1]
pop edi
mov dword [esi + 0x6c], eax
pop esi
mov esp, ebp
pop ebp
ret
push 0x10
push esi
call fcn.004aaa80
push 0xc
push esi
call fcn.004aaa80
push 0xe
push esi
call fcn.004aaa80
push 8
push esi
call fcn.004aaa80
push 3
push esi
call fcn.004aaa80
int3