Function at 0x100c4520
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe8
mov ebx, dword [ecx]
mov eax, dword [ebx + 0x10]
xor eax, 2
or eax, dword [ebx + 0x14]
je 0x100c47dc
movzx eax, byte [ebx + 0xa1]
test al, al
je 0x100c457b
cmp byte [ebx + 0xbc], 0
je 0x100c47bc
mov edi, dword [ebx + 0xb8]
cmp dword [ebx + 0x94], 0x80000000
jne 0x100c4616
mov dword [esp + 8], 0x80000000
jmp 0x100c4667
mov ecx, dword [ebx + 0xa8]
mov edx, dword [ebx + 0xac]
push dword [ebx + 0xb0]
call fcn.100ea6d0
add esp, 4
movd xmm1, eax
movd xmm0, edx
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 1
mov al, 1
punpckldq xmm1, xmm0
punpckldq xmm1, xmmword [0x10119340]
subpd xmm1, xmmword [0x10119350]
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
movd xmm1, ecx
por xmm1, xmmword [0x101193b0]
subsd xmm1, qword [0x101193c0]
divsd xmm1, qword [0x101193c8]
addsd xmm1, xmm0
movsd qword [ebx + 0x28], xmm1
mov byte [ebx + 0xa1], 1
mov byte [ebx + 0xbc], 1
mov edi, dword [ebx + 0xb8]
cmp dword [ebx + 0x94], 0x80000000
je 0x100c456e
mov edx, dword [ebx + 0x9c]
mov esi, dword [ebx + 0x98]
test edx, edx
mov dword [esp + 8], edx
je 0x100c464c
js 0x100c47fe
movzx eax, byte [0x10199148]
xor ecx, ecx
call fcn.100ea7d0
test eax, eax
je 0x100c4803
mov edx, dword [esp + 8]
jmp 0x100c4651
mov eax, 1
mov dword [esp + 0xc], eax
push edx
push esi
push eax
call fcn.10100490
add esp, 0xc
movzx eax, byte [ebx + 0xa1]
mov byte [esp + 6], al
mov eax, dword [ebx + 0x10]
movsd xmm0, qword [ebx + 0x28]
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
add edi, 8
mov esi, dword [ebx + 0x8c]
mov dword [esp + 0x20], edi
mov edi, dword [ebx + 0x90]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x14]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [ebx + 0x80]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
lea edx, [ebx + 0x30]
lea ecx, [esp + 0x68]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x18]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [ebx + 0x78]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x1c]
movsd qword [esp + 0x30], xmm0
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x88]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 0xa0]
mov byte [esp + 7], al
call fcn.100c5d70
movsd xmm0, qword [ebx + 0x68]
movsd xmm1, qword [ebx + 0x70]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov ch, byte [esp + 7]
mov cl, byte [esp + 6]
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xa8], xmm1
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x30]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
movsd qword [esp + 0xb0], xmm0
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x38]
mov byte [esp + 0xd8], ch
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], esi
movsd qword [esp + 0x60], xmm0
mov byte [esp + 0xd9], cl
movsd xmm0, qword [esp + 0x40]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x48]
movsd qword [esp + 0xb8], xmm0
call fcn.100c5f90
mov eax, dword [ebx + 0xb8]
lea esi, [ebx + 0x10]
lock dec dword [eax]
jne 0x100c47d5
lea ecx, [ebx + 0xb8]
call fcn.100c3a60
mov ecx, esi
call fcn.100161e0
cmp ebx, 0xffffffff
je 0x100c47f6
lock dec dword [ebx + 4]
jne 0x100c47f6
push ebx
push 0
push dword [0x101990e0]
call dword [sym.imp.kernel32.dll_HeapFree]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.10001070
mov edx, dword [esp + 8]
mov ecx, 1
call fcn.1010cb60
int3