Function at 0x46fc50
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x2c]
push ebx
push ebp
xor ebp, ebp
xor ebx, ebx
mov dword [esp + 8], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
push edi
test eax, eax
je 0x46fc83
test dword [eax], 0x8000
je 0x46fc83
mov eax, dword [eax + 8]
movzx eax, word [eax + 4]
mov dword [esp + 0x10], eax
jmp 0x46fc87
mov dword [esp + 0x10], ebx
push esi
mov esi, dword [esp + 0x40]
mov eax, 0x200
test esi, esi
je 0x46fcac
test word [esi + 4], ax
jne 0x46fcac
mov esi, dword [esi + 0xc]
test esi, esi
je 0x46fcaa
mov esi, dword [esi]
test word [esi + 4], ax
jne 0x46fcac
xor esi, esi
push 0x5c
call fcn.0046be30
mov edi, eax
add esp, 4
test edi, edi
jne 0x46fccc
push eax
push eax
push eax
push 0x232e
call fcn.00458c70
add esp, 0x10
push 0x58
lea eax, [edi + 4]
mov dword [edi], 1
push 0
push eax
call fcn.0050abb0
mov cx, word [0x8b81c8]
mov edi, eax
mov ax, word [0x8b81c4]
add esp, 0xc
cmp cx, ax
jne 0x46fd2a
add ax, 0x40
mov word [0x8b81c4], ax
movzx eax, ax
lea eax, [eax*4 + 4]
push eax
push dword [0x8b81c0]
call fcn.0048c1c0
mov cx, word [0x8b81c8]
mov edx, eax
add esp, 8
mov dword [0x8b81c0], edx
jmp 0x46fd30
mov edx, dword [0x8b81c0]
push dword [esp + 0x34]
inc cx
movzx eax, cx
mov word [edi + 0x34], cx
mov word [0x8b81c8], cx
mov dword [edx + eax*4], edi
call fcn.004f56d0
push eax
mov dword [edi], eax
call fcn.00471070
add esp, 8
mov dword [edi + 4], eax
test esi, esi
jne 0x46fd80
mov esi, dword [eax]
test esi, esi
je 0x46fd80
mov eax, 0x200
test word [esi + 4], ax
jne 0x46fd80
mov esi, dword [esi + 0xc]
test esi, esi
je 0x46fd7e
mov esi, dword [esi]
test word [esi + 4], ax
jne 0x46fd80
xor esi, esi
mov dword [edi + 0xc], esi
cmp dword [esp + 0x44], ebx
je 0x46fdbf
test esi, esi
je 0x46fdb6
mov ecx, dword [0x8b819c]
test ecx, ecx
je 0x46fdb6
cmp dword [ecx + 0x18], ebx
je 0x46fdaf
mov edx, dword [ecx]
cmp esi, edx
jb 0x46fdaf
movzx eax, word [ecx + 4]
shl eax, 4
add eax, edx
cmp esi, eax
jb 0x46fe14
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x46fd97
mov dword [edi + 0x10], ebx
xor eax, eax
mov word [edi + 0x48], ax
mov eax, 1
mov ecx, eax
mov dword [esp + 0x2c], eax
cmp cx, word [esp + 0x14]
ja 0x470281
nop word [eax + eax]
mov ecx, dword [esp + 0x3c]
movzx eax, ax
test dword [ecx], 0x8000
je 0x46fe38
test eax, eax
je 0x46fe38
mov edx, dword [ecx + 8]
cmp eax, dword [edx + 4]
ja 0x46fe38
lea ecx, [eax + eax*2]
mov eax, dword [edx]
lea eax, [eax + ecx*8]
add eax, 0xffffffe8
je 0x46fe38
mov ecx, dword [eax]
test cl, 2
je 0x46fe1d
mov eax, dword [eax + 8]
jmp 0x46fe3a
mov dword [edi + 0x10], edx
mov ax, word [ecx + 4]
jmp 0x46fdbb
test cl, 8
je 0x46fe27
mov eax, dword [eax + 8]
jmp 0x46fe3a
test cl, 0x10
je 0x46fe38
movsd xmm0, qword [eax + 8]
call fcn.00509700
jmp 0x46fe3a
xor eax, eax
movzx edx, ax
mov dword [esp + 0x24], edx
test dx, dx
je 0x470259
cmp dx, word [edi + 0x34]
jae 0x470259
cmp dword [edi + 8], 0
mov eax, dword [0x8b81c0]
movzx ecx, dx
mov ebx, dword [eax + ecx*4]
mov dword [esp + 0x40], ebx
jne 0x46fe78
push ebx
push edi
call fcn.0046ea80
add esp, 8
jmp 0x470259
push edx
push edi
call fcn.0046f480
add esp, 8
test eax, eax
jne 0x470259
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x46febd
mov ecx, dword [eax]
test ecx, 0x400
je 0x46fea0
mov eax, dword [eax + 8]
jmp 0x46febf
test ecx, 0x8000
je 0x46feb0
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
jmp 0x46febf
test cl, 4
je 0x46febd
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x10]
jmp 0x46febf
xor eax, eax
movzx ecx, ax
mov dword [esp + 0x20], ecx
movzx eax, cx
test cx, cx
je 0x46ff00
mov esi, eax
add esi, esi
cmp cx, word [esp + 0x1c]
jbe 0x46fef4
push esi
push ebp
call fcn.0048c1c0
mov ebp, eax
add esp, 8
mov eax, dword [esp + 0x20]
movzx eax, ax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], eax
push esi
push 0
push ebp
call fcn.0050abb0
add esp, 0xc
xor eax, eax
xor esi, esi
cmp ax, word [ebx + 0x44]
jae 0x46ff2d
nop word [eax + eax]
mov eax, dword [ebx + 0x2c]
movzx ecx, si
push 1
movzx eax, word [eax + ecx*4]
push eax
push edi
call fcn.0046ed20
inc esi
add esp, 0xc
cmp si, word [ebx + 0x44]
jb 0x46ff10
push 1
push dword [esp + 0x28]
push edi
call fcn.0046ed20
movzx ecx, word [ebx + 0x3e]
add esp, 0xc
test cx, cx
je 0x46ffc3
xor eax, eax
xor edx, edx
mov dword [esp + 0x44], eax
cmp dx, cx
jae 0x46ffc3
mov ebp, dword [esp + 0x40]
movzx eax, ax
mov ebp, dword [ebp + 0x14]
lea ebx, [eax + eax*2]
cmp word [ebp + ebx*4 + 4], 1
jne 0x46ffb0
movzx eax, word [edi + 0x44]
movzx esi, word [ebp + ebx*4 + 0xa]
test ax, ax
je 0x46ff97
mov edx, dword [edi + 0x2c]
nop dword [eax + eax]
add eax, 0xffff
movzx ecx, ax
cmp word [edx + ecx*4], si
je 0x470087
test ax, ax
jne 0x46ff80
xor eax, eax
push esi
push eax
movzx eax, word [ebp + ebx*4 + 6]
push eax
push 1
push dword [ebp + ebx*4]
push edi
call fcn.0046daf0
add esp, 0x18
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
inc eax
mov dword [esp + 0x44], eax
cmp ax, word [ebx + 0x3e]
jb 0x46ff52
movzx eax, word [ebx + 0x54]
mov dword [esp + 0x28], eax
test eax, eax
je 0x47021a
xor ebp, ebp
mov dword [esp + 0x44], ebp
nop dword [eax]
mov eax, dword [ebx + 8]
mov eax, dword [eax + ebp]
test eax, eax
je 0x470208
push eax
push edi
call fcn.0046e980
mov esi, eax
add esp, 8
cmp dword [esi], 0
je 0x470098
mov ebp, dword [esi + 8]
cmp ebp, 0x87ff30
jne 0x47003d
movzx eax, word [edi + 0x44]
test ax, ax
je 0x470033
mov edx, dword [edi + 0x2c]
movzx ebx, word [esi + 0x18]
nop
add eax, 0xffff
movzx ecx, ax
cmp word [edx + ecx*4], bx
je 0x470091
test ax, ax
jne 0x470020
xor eax, eax
mov ebx, dword [esp + 0x40]
mov word [esi + 0x1a], ax
cmp ebp, 0x87ff20
je 0x47009e
mov ax, word [0x8b7fbc]
test ax, ax
je 0x470056
cmp word [esi + 0x14], ax
je 0x47009e
mov eax, dword [ebx + 8]
mov ecx, 0x600
mov ebp, dword [esp + 0x44]
test word [eax + ebp + 0x16], cx
je 0x470075
mov eax, 0x400
or word [esi + 0x16], ax
mov eax, dword [ebx + 8]
push edi
add eax, ebp
push esi
push eax
call fcn.00470790
add esp, 0xc
jmp 0x470208
movzx eax, word [edx + ecx*4 + 2]
jmp 0x46ff99
movzx eax, word [edx + ecx*4 + 2]
jmp 0x470035
inc word [edi + 0x3c]
jmp 0x4700a2
mov ebp, dword [esp + 0x44]
mov eax, dword [ebx + 8]
push edi
push esi
push esi
movups xmm0, xmmword [eax + ebp]
movups xmmword [esi], xmm0
movups xmm0, xmmword [eax + ebp + 0x10]
movups xmmword [esi + 0x10], xmm0
call fcn.00470790
add esp, 0xc
test eax, eax
jne 0x470208
mov eax, dword [esi + 8]
cmp eax, 0x87ff70
je 0x4700d9
cmp eax, 0x87ff80
jne 0x4700dc
mov eax, dword [esi + 0xc]
cmp eax, 0x87fed0
je 0x470144
cmp eax, 0x87fee0
je 0x470144
cmp eax, 0x87feb0
je 0x4700fc
cmp eax, 0x87fec0
jne 0x4701ff
movzx eax, word [edi + 0x44]
test ax, ax
je 0x470123
mov edx, dword [edi + 0x2c]
movzx ebx, word [esi + 0x14]
nop dword [eax]
add eax, 0xffff
movzx ecx, ax
cmp word [edx + ecx*4], bx
je 0x470132
test ax, ax
jne 0x470110
mov ebx, dword [esp + 0x40]
xor eax, eax
mov word [esi + 0x1a], ax
jmp 0x4701ff
movzx eax, word [edx + ecx*4 + 2]
mov ebx, dword [esp + 0x40]
mov word [esi + 0x1a], ax
jmp 0x4701ff
movzx eax, word [esi + 0x18]
mov ecx, eax
cmp ax, word [esp + 0x20]
jbe 0x47016b
push 0
push str.__clsNew__
push 0
push 0x232d
call fcn.00458c70
movzx ecx, word [esi + 0x18]
add esp, 0x10
movzx edx, cx
movzx eax, cx
mov ecx, dword [esp + 0x10]
cmp word [ecx + edx*2 - 2], 0
jne 0x4701b1
mov eax, dword [edi + 0x18]
test dword [eax], 0x8000
je 0x470190
mov eax, dword [eax + 8]
mov eax, dword [eax + 4]
jmp 0x470192
xor eax, eax
inc eax
mov word [ecx + edx*2 - 2], ax
movzx eax, word [esi + 0x18]
movzx eax, word [ecx + eax*2 - 2]
push eax
push dword [edi + 0x18]
call fcn.0046d920
movzx eax, word [esi + 0x18]
add esp, 8
movzx edx, word [esi + 0x1a]
movzx ecx, ax
test dx, dx
je 0x4701ef
push dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
movzx eax, ax
push 0
movzx eax, word [ecx + eax*2 - 2]
push eax
mov eax, edx
push 2
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 0x14]
push dword [eax + ecx*4 - 0xc]
push edi
call fcn.0046daf0
movzx ecx, word [esi + 0x18]
add esp, 0x18
mov word [esi + 0x1a], ax
movzx eax, cx
mov ecx, dword [esp + 0x10]
mov ax, word [ecx + eax*2 - 2]
mov word [esi + 0x18], ax
mov eax, 0x80
or word [esi + 0x16], ax
add ebp, 0x20
sub dword [esp + 0x28], 1
mov dword [esp + 0x44], ebp
jne 0x46ffe0
cmp word [ebx + 0x38], 0
mov ecx, 1
je 0x47022a
mov word [edi + 0x38], cx
cmp word [ebx + 0x36], 0
je 0x470235
mov word [edi + 0x36], cx
mov eax, dword [ebx + 0x30]
or dword [edi + 0x30], eax
cmp word [ebx + 0x4a], 0
je 0x470246
mov word [edi + 0x4a], cx
mov eax, dword [esp + 0x18]
cmp dword [ebx + 0x24], 0
mov ebp, dword [esp + 0x10]
cmovne eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp ax, word [esp + 0x14]
jbe 0x46fde0
test ebp, ebp
je 0x47027d
lea eax, [ebp - 4]
push eax
call fcn.0046b7d0
add esp, 4
mov ebx, dword [esp + 0x18]
cmp dword [edi + 8], 0
jne 0x4704a9
push 7
push edi
call fcn.0046ee10
push 0x2c
call fcn.0046be30
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4702b3
push eax
push eax
push eax
push 0x232e
call fcn.00458c70
add esp, 0x10
mov ax, word [0x880134]
lea ecx, [esi + 4]
mov dword [esi], 1
mov ebp, 1
lea esi, [ecx + 0x10]
mov dword [ecx + 8], 0x74fc3c
mov word [ecx + 0xc], bp
mov word [ecx + 0xe], ax
mov dword [esi], 0
mov eax, dword [0x8b81ec]
test eax, eax
je 0x470301
mov dword [ecx], eax
mov eax, dword [0x8b81ec]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov dword [eax], ecx
mov eax, dword [0x8b81ec]
mov dword [eax + 4], ecx
jmp 0x47030c
mov dword [ecx + 4], ecx
mov dword [ecx], ecx
mov dword [0x8b81ec], ecx
test dword [esi], 0xb405
je 0x47031d
push esi
call fcn.00473380
add esp, 4
push 0x74fc4c
push 0x10
call fcn.00471520
xor ecx, ecx
push 0x2c
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [esi], 0x8000
mov dword [esi + 8], eax
mov dword [edi + 0x18], esi
call fcn.0046be30
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x47036a
push eax
push eax
push eax
push 0x232e
call fcn.00458c70
add esp, 0x10
mov ax, word [0x880134]
lea ecx, [esi + 4]
mov dword [esi], ebp
lea esi, [ecx + 0x10]
mov dword [ecx + 8], 0x74fc3c
mov word [ecx + 0xc], bp
mov word [ecx + 0xe], ax
mov dword [esi], 0
mov eax, dword [0x8b81ec]
test eax, eax
je 0x4703af
mov dword [ecx], eax
mov eax, dword [0x8b81ec]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov dword [eax], ecx
mov eax, dword [0x8b81ec]
mov dword [eax + 4], ecx
jmp 0x4703ba
mov dword [ecx + 4], ecx
mov dword [ecx], ecx
mov dword [0x8b81ec], ecx
test dword [esi], 0xb405
je 0x4703cb
push esi
call fcn.00473380
add esp, 4
push 0x74fc4c
push 0x10
call fcn.00471520
xor ecx, ecx
push 0x2c
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [esi], 0x8000
mov dword [esi + 8], eax
mov dword [edi + 0x1c], esi
call fcn.0046be30
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x470418
push eax
push eax
push eax
push 0x232e
call fcn.00458c70
add esp, 0x10
mov ax, word [0x880134]
lea ecx, [esi + 4]
mov dword [esi], ebp
lea esi, [ecx + 0x10]
mov dword [ecx + 8], 0x74fc3c
mov word [ecx + 0xc], bp
mov word [ecx + 0xe], ax
mov dword [esi], 0
mov eax, dword [0x8b81ec]
test eax, eax
je 0x47045d
mov dword [ecx], eax
mov eax, dword [0x8b81ec]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
mov dword [eax], ecx
mov eax, dword [0x8b81ec]
mov dword [eax + 4], ecx
jmp 0x470468
mov dword [ecx + 4], ecx
mov dword [ecx], ecx
mov dword [0x8b81ec], ecx
test dword [esi], 0xb405
je 0x470479
push esi
call fcn.00473380
add esp, 4
push 0x74fc4c
push 0x10
call fcn.00471520
add esp, 8
xor ecx, ecx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [esi], 0x8000
mov dword [esi + 8], eax
mov dword [edi + 0x20], esi
movzx eax, word [edi + 0x40]
mov word [edi + 0x42], ax
movzx eax, word [edi + 0x34]
push 0
push eax
push edi
call fcn.0046ed20
movzx eax, word [edi + 0x40]
add esp, 0xc
add ax, word [esp + 0x38]
cmp word [edi + 0x4a], 0
movzx eax, ax
mov word [edi + 0x40], ax
pop esi
je 0x4704de
inc eax
mov word [edi + 0x4a], ax
test ebx, ebx
je 0x4704f0
cmp dword [edi + 0x24], 0
jne 0x4704f0
call fcn.00480880
mov dword [edi + 0x24], eax
mov ax, word [edi + 0x34]
pop edi
pop ebp
pop ebx
add esp, 0x20
ret