Function at 0x470904
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffff7f0
mov edi, ecx
mov ebx, edx
mov eax, edi
call fcn.00470454
lea edx, [esp + 0x10]
mov ecx, 0x800
mov eax, ebx
call fcn.0041c9d0
mov ebx, dword [edi + 0x30]
mov ax, word [esp + 0x10]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 4], eax
mov ax, word [esp + 0x12]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 8], eax
mov ax, word [esp + 0x14]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0xc], eax
mov ax, word [esp + 0x16]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x10], eax
mov ax, word [esp + 0x18]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x14], eax
mov ax, word [esp + 0x1a]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x18], eax
mov ax, word [esp + 0x1c]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x1c], eax
mov ax, word [esp + 0x1e]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x20], eax
mov ax, word [esp + 0x20]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x24], eax
mov ax, word [esp + 0x22]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x28], eax
mov ax, word [esp + 0x24]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x2c], eax
mov ax, word [esp + 0x26]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x30], eax
mov ax, word [esp + 0x28]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x40], eax
mov ax, word [esp + 0x2a]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x34], eax
mov ax, word [esp + 0x2c]
call fcn.004583e4
movzx eax, ax
mov dword [ebx + 0x38], eax
cmp word [esp + 0x2e], 0xffff
sete al
mov byte [ebx + 0x3c], al
lea eax, [ebx + 0x44]
lea edx, [esp + 0x7f0]
mov ecx, 0x20
call fcn.00404798
xor ebx, ebx
lea esi, [esp + 0x30]
mov eax, dword [esi]
mov dword [esp], eax
mov eax, dword [esi + 4]
mov dword [esp + 4], eax
cmp dword [esp + 4], 0
jne 0x470a5c
cmp dword [esp], 0
je 0x470ac8
mov eax, dword [edi + 0x38]
call fcn.0046fb00
xor edx, edx
mov dl, byte [esp]
shl edx, 8
xor ecx, ecx
mov cl, byte [esp + 1]
add edx, ecx
sub edx, 0x10
mov dword [eax + 0xc], edx
xor edx, edx
mov dl, byte [esp + 2]
shl edx, 8
xor ecx, ecx
mov cl, byte [esp + 3]
add edx, ecx
mov dword [eax + 0x10], edx
mov dl, byte [esp + 5]
and dl, 0xf
and edx, 0xff
mov dword [eax + 0x14], edx
mov dl, byte [esp + 6]
test dl, 0x80
je 0x470aab
or byte [eax + 0x18], 4
test dl, 0x40
je 0x470ab4
or byte [eax + 0x18], 1
cmp byte [esp + 7], 0x8f
jne 0x470abf
or byte [eax + 0x18], 2
cmp ebx, 0x10
setge dl
mov byte [eax + 0x19], dl
inc ebx
add esi, 8
cmp ebx, 0x20
jne 0x470a43
mov ebx, 0x190
lea esi, [esp + 0x130]
mov eax, dword [esi]
mov dword [esp + 8], eax
cmp dword [esp + 8], 0xffffffff
je 0x470b5f
mov eax, dword [edi + 0x34]
call fcn.0046f8a8
mov dl, byte [esp + 8]
mov ecx, edx
and cl, 0xf
and ecx, 0xff
shl ecx, 8
movzx ebp, byte [esp + 9]
add ecx, ebp
sub ecx, 0x10
mov dword [eax + 0xc], ecx
and edx, 0xff
shr edx, 5
mov byte [eax + 0x18], dl
mov dl, byte [esp + 0xb]
and dl, 0x80
and edx, 0xff
shr edx, 7
xor ecx, ecx
mov cl, byte [esp + 0xa]
add ecx, ecx
add edx, ecx
cmp edx, 0x100
jl 0x470b49
sub edx, 0x200
sub edx, 4
mov dword [eax + 0x10], edx
mov dl, byte [esp + 0xb]
and dl, 0x3f
and edx, 0xff
mov dword [eax + 0x14], edx
add esi, 4
dec ebx
jne 0x470ae1
mov ebx, 0x20
lea esi, [esp + 0x770]
mov eax, dword [esi]
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
je 0x470be8
mov eax, dword [edi + 0x3c]
call fcn.0046fd08
mov dl, byte [esp + 0xd]
mov ecx, edx
and cl, 0x80
and ecx, 0xff
shr ecx, 7
movzx ebp, byte [esp + 0xc]
add ebp, ebp
add ecx, ebp
shl ecx, 2
sub ecx, 0x10
mov dword [eax + 0xc], ecx
and edx, 0xff
and dx, 0xff7f
movsx edx, dx
shl edx, 2
mov dword [eax + 0x10], edx
mov dl, byte [esp + 0xe]
xor ecx, ecx
mov cl, dl
shr ecx, 4
shl ecx, 2
add ecx, 4
mov dword [eax + 0x18], ecx
and dl, 0xf
and edx, 0xff
shl edx, 2
add edx, 4
mov dword [eax + 0x14], edx
add esi, 4
dec ebx
jne 0x470b75
add esp, 0x810
pop ebp
pop edi
pop esi
pop ebx
ret