Function at 0x470f90
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x34
mov ecx, dword [esp + 0x48]
mov esi, dword [ecx + 0x2c]
test esi, esi
je 0x470ff7
cmp word [ecx + 0x14], 0
jne 0x470fb4
cmp word [ecx + 0x16], 0
je 0x471454
movzx eax, byte [ecx + 0x40]
and al, 0xf
cmp al, 3
mov ebx, ecx
jne 0x47131f
push esi
call fcn.00476e90
add esp, 4
mov edi, eax
push esi
call fcn.00476d60
add esp, 4
movsx edx, word [ebx + 0x14]
movsx edi, di
cwde
mov ecx, esi
push 3
push edi
push eax
call fcn.004716a0
add esp, 0xc
mov ebx, eax
xor edi, edi
jmp 0x47134d
movd xmm0, dword [ecx + 0x14]
movd xmm1, dword [ecx + 0x18]
paddw xmm1, xmm0
movd dword [ecx + 0x18], xmm1
call fcn.00470690
mov ecx, dword [esp + 0x48]
mov edi, dword [ecx + 0x24]
movd xmm0, dword [ecx + 0x18]
pxor xmm1, xmm1
psubw xmm1, xmm0
pmaxsw xmm1, xmm0
movd ecx, xmm1
pextrw ebp, xmm1, 1
cmp cx, bp
seta bl
test edi, edi
je 0x471454
xor edx, edx
mov dword [esp + 0x24], ecx
cmp cx, bp
setbe dl
mov dword [esp + 0x20], edx
mov eax, dword [eax]
movzx eax, byte [eax + 0x18]
mov dword [esp + 0x10], eax
neg eax
mov dword [esp + 0xc], eax
xor esi, esi
mov dword [esp + 0x14], 0
nop dword [eax + eax]
push 0x10
push edi
call fcn.00473280
add esp, 8
test al, al
jne 0x4710c8
push 0x100
push edi
call fcn.00473280
add esp, 8
test al, al
jne 0x47109c
cmp word [esp + 0x24], bp
ja 0x47128d
push 0x200
push edi
call fcn.00473280
add esp, 8
or al, bl
cmp al, 1
jne 0x47128d
push edi
call fcn.0047a7c0
add esp, 4
mov edi, eax
test eax, eax
jne 0x471070
jmp 0x47128d
push edi
call fcn.00476bc0
add esp, 4
movzx edx, al
mov ecx, edx
and ecx, 4
mov eax, dword [esp + 0x20]
cmovne ecx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], edx
mov ecx, edx
and ecx, 8
cmovne ecx, eax
mov dword [esp + 0x18], ecx
push edi
call fcn.00476c40
add esp, 4
mov word [esp + 6], ax
push edi
call fcn.00476c60
add esp, 4
mov word [esp + 2], ax
push edi
call fcn.00476d60
add esp, 4
mov word [esp + 4], ax
push edi
call fcn.00476e90
movzx ecx, word [esp + 6]
add esp, 4
cmp word [esp + 6], 0
jg 0x47113f
test cx, cx
jg 0x47113f
mov edx, dword [esp + 0x24]
jmp 0x471175
cmp byte [esp + 0x1c], 0
mov edx, dword [esp + 0x24]
je 0x471158
mov ecx, dword [esp + 0x48]
movsx ecx, word [ecx + 0x1a]
cmp ecx, dword [esp + 0x10]
jge 0x47116d
cmp byte [esp + 0x18], 0
je 0x471175
mov ecx, dword [esp + 0x48]
movsx ecx, word [ecx + 0x1a]
cmp ecx, dword [esp + 0xc]
jg 0x471175
mov cl, 0xc
mov dword [esp + 0x14], ecx
mov esi, edi
cmp word [esp + 4], 0
jg 0x47119c
test ax, ax
jg 0x47119c
mov ecx, dword [esp + 0x48]
movzx eax, word [esp + 2]
cmp word [esp + 6], 0
jg 0x471239
jmp 0x47124f
test byte [esp + 8], 1
mov ecx, dword [esp + 0x48]
je 0x4711ba
cmp dx, bp
jbe 0x4711ba
movsx ecx, word [ecx + 0x18]
cmp ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
jge 0x4711d4
test byte [esp + 8], 2
je 0x4711e0
cmp dx, bp
jbe 0x4711e0
movsx ecx, word [ecx + 0x18]
cmp ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
jg 0x4711e0
mov dl, 3
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x24]
mov esi, edi
cmp word [esp + 4], 0
jle 0x471208
mov ecx, dword [esp + 8]
and ecx, 1
mov ecx, dword [esp + 0x48]
je 0x471208
cmp dx, bp
jbe 0x471208
movsx ecx, word [ecx + 0x18]
cmp ecx, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
jge 0x471271
test ax, ax
jle 0x471186
and dword [esp + 8], 2
movzx eax, word [esp + 2]
je 0x471231
cmp dx, bp
jbe 0x471231
movsx eax, word [ecx + 0x18]
cmp eax, dword [esp + 0xc]
movzx eax, word [esp + 2]
jle 0x471271
cmp word [esp + 6], 0
jle 0x47124f
cmp byte [esp + 0x1c], 0
je 0x47124f
movsx eax, word [ecx + 0x1a]
cmp eax, dword [esp + 0x10]
movzx eax, word [esp + 2]
jge 0x471271
test ax, ax
jle 0x47107f
cmp byte [esp + 0x18], 0
je 0x47107f
movsx eax, word [ecx + 0x1a]
cmp eax, dword [esp + 0xc]
jg 0x47107f
xor eax, eax
cmp dx, bp
setbe al
lea eax, [eax + eax*8]
add eax, 3
mov edx, ecx
movzx ecx, byte [ecx + 0x40]
and cl, 0xf0
or cl, al
mov byte [edx + 0x40], cl
test esi, esi
mov ecx, dword [esp + 0x48]
je 0x471454
movzx eax, byte [ecx + 0x40]
mov edx, dword [esp + 0x14]
and dl, 0xf
and al, 0xf0
or al, dl
mov byte [ecx + 0x40], al
mov dword [ecx + 0x2c], esi
mov dword [ecx + 0x18], 0
push 0x80
push esi
mov edi, ecx
call fcn.00473280
add esp, 8
test al, al
je 0x47145c
push esi
call fcn.00476c00
add esp, 4
cmp al, 3
je 0x4714de
movzx eax, al
cmp eax, 2
je 0x471534
cmp eax, 1
jne 0x47156b
movzx eax, word [esi + 0x16]
inc eax
movsx edx, ax
mov ecx, esi
push 0
push 0x1fff
call fcn.00471c40
add esp, 8
mov edi, dword [esp + 0x48]
mov word [edi + 0x36], ax
movzx eax, word [esi + 0x16]
dec eax
cwde
jmp 0x471555
push esi
call fcn.00476c40
add esp, 4
mov edi, eax
push esi
call fcn.00476c60
add esp, 4
movsx edx, word [ebx + 0x16]
cwde
movsx edi, di
mov ecx, esi
push 0xc
push eax
push edi
call fcn.004716a0
add esp, 0xc
mov edi, eax
xor ebx, ebx
push esi
call fcn.00476bc0
add esp, 4
movzx edx, al
xor ecx, ecx
test al, 1
jne 0x471364
test bx, bx
jg 0x471370
test bx, bx
cmovns ecx, ebx
test dl, 2
cmovne ecx, ebx
xor eax, eax
test dl, 4
jne 0x47137c
test di, di
jg 0x471388
test di, di
cmovns eax, edi
test dl, 8
cmovne eax, edi
movd xmm3, ecx
pinsrw xmm3, eax, 1
punpcklwd xmm2, xmm3
psrad xmm2, 0x10
mov edi, dword [esp + 0x48]
movd xmm0, dword [edi + 0x18]
pshuflw xmm5, xmm0, 0x60
psrad xmm5, 0x10
paddd xmm2, xmm5
movd xmm4, dword [edi + 0x34]
pshuflw xmm7, xmm4, 0x60
psrad xmm7, 0x10
pcmpgtd xmm7, xmm2
movdqa xmm1, xmm7
packssdw xmm1, xmm1
psubw xmm4, xmm0
punpcklwd xmm6, xmm4
psrad xmm6, 0x10
paddd xmm6, xmm5
pand xmm4, xmm1
pandn xmm1, xmm3
por xmm1, xmm4
pand xmm6, xmm7
pandn xmm7, xmm2
por xmm7, xmm6
movd xmm2, dword [edi + 0x38]
pshuflw xmm3, xmm2, 0x60
psrad xmm3, 0x10
pcmpgtd xmm7, xmm3
packssdw xmm7, xmm7
psubw xmm2, xmm0
pand xmm2, xmm7
pandn xmm7, xmm1
por xmm7, xmm2
movd eax, xmm7
movdqu xmmword [esp + 0x24], xmm7
pextrw ecx, xmm7, 1
movsx ecx, cx
cwde
push ecx
push eax
push esi
call fcn.00477490
add esp, 0xc
test byte [edi + 4], 2
jne 0x471454
movd xmm0, dword [edi + 0x18]
movdqu xmm1, xmmword [esp + 0x24]
paddw xmm0, xmm1
movd dword [edi + 0x18], xmm0
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [edi + 0x34]
sub esp, 0x14
movdqa xmm0, xmmword [0x5ea4b0]
movdqu xmmword [esp + 4], xmm0
mov dword [esp], eax
call fcn.004ad0a0
add esp, 0x14
mov ecx, edi
cmp word [ecx + 0x34], 0
jne 0x47148a
mov word [ecx + 0x34], 0xe001
cmp word [ecx + 0x38], 0
je 0x4714bc
cmp word [ecx + 0x36], 0
je 0x4714c9
cmp word [ecx + 0x3a], 0
je 0x4714d6
push 0
push 9
push esi
call fcn.0046e9e0
mov ecx, dword [esp + 0x54]
add esp, 0xc
test byte [ecx + 4], 2
je 0x470fa2
jmp 0x471454
mov word [ecx + 0x38], 0x1fff
cmp word [ecx + 0x36], 0
jne 0x471498
mov word [ecx + 0x36], 0xe001
cmp word [ecx + 0x3a], 0
jne 0x47149f
mov word [ecx + 0x3a], 0x1fff
jmp 0x47149f
movzx edi, word [esi + 0x16]
movzx eax, word [esi + 0x1a]
sub eax, edi
lea ecx, [eax + 1]
movzx ecx, cx
shr ecx, 0xf
add eax, ecx
inc eax
movsx ebx, ax
sar ebx, 1
lea eax, [ebx + edi]
inc eax
movsx edx, ax
mov ecx, esi
push 0
push 0x1fff
call fcn.00471c40
add esp, 8
mov ebp, dword [esp + 0x48]
mov word [ebp + 0x36], ax
lea eax, [ebx + edi]
dec eax
cwde
mov ecx, esi
mov edx, 0xffffe001
push 0
push eax
call fcn.00471c40
mov ecx, ebp
add esp, 8
jmp 0x471579
movsx edx, word [esi + 0x1a]
mov ecx, esi
push 0
push 0x1fff
call fcn.00471c40
add esp, 8
mov edi, dword [esp + 0x48]
mov word [edi + 0x36], ax
movsx eax, word [esi + 0x1a]
mov ecx, esi
mov edx, 0xffffe001
push 0
push eax
call fcn.00471c40
mov ecx, edi
add esp, 8
jmp 0x471579
mov ecx, dword [esp + 0x48]
mov word [ecx + 0x36], 0xe001
mov ax, 0x1fff
mov word [ecx + 0x3a], ax
push esi
call fcn.00476be0
add esp, 4
cmp al, 3
je 0x4715c5
movzx eax, al
cmp eax, 2
je 0x47162c
cmp eax, 1
jne 0x471675
movsx edx, word [esi + 0x14]
mov ecx, esi
push 0
push 0x1fff
call fcn.00471dd0
add esp, 8
mov edi, dword [esp + 0x48]
mov word [edi + 0x34], ax
movsx eax, word [esi + 0x14]
jmp 0x47164d
mov edi, dword [esi + 0x14]
movzx eax, word [esi + 0x18]
sub eax, edi
lea ecx, [eax + 1]
movzx ecx, cx
shr ecx, 0xf
add eax, ecx
inc eax
movsx ebx, ax
sar ebx, 1
lea eax, [ebx + edi]
inc eax
movsx edx, ax
mov ecx, esi
push 0
push 0x1fff
call fcn.00471dd0
add esp, 8
mov ebp, dword [esp + 0x48]
mov word [ebp + 0x34], ax
lea eax, [ebx + edi]
dec eax
cwde
mov ecx, esi
mov edx, 0xffffe001
push 0
push eax
call fcn.00471dd0
mov ecx, ebp
add esp, 8
mov word [ebp + 0x38], ax
cmp word [ecx + 0x34], 0
jne 0x47148a
jmp 0x471484
movsx edx, word [esi + 0x18]
mov ecx, esi
push 0
push 0x1fff
call fcn.00471dd0
add esp, 8
mov edi, dword [esp + 0x48]
mov word [edi + 0x34], ax
movsx eax, word [esi + 0x18]
mov ecx, esi
mov edx, 0xffffe001
push 0
push eax
call fcn.00471dd0
mov ecx, edi
add esp, 8
mov word [edi + 0x38], ax
cmp word [ecx + 0x34], 0
jne 0x47148a
jmp 0x471484
mov ecx, dword [esp + 0x48]
mov word [ecx + 0x34], 0xe001
mov word [ecx + 0x38], 0x1fff
cmp word [ecx + 0x34], 0
jne 0x47148a
jmp 0x471484