Function at 0x4104b0
Capabilities:
Enumerate pe sections

Disassembly:
push 0xffffffffffffffff
push 0x42d988
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
mov dword [esp + 4], ecx
mov cx, word [esp + 0x20]
push ebp
push esi
mov esi, dword [esp + 0x20]
push edi
mov edi, dword [esp + 0x28]
mov al, byte [edi + 1]
mov byte [esi], al
mov word [esi + 0x1e], cx
movzx eax, byte [edi + 4]
shl eax, 8
mov dword [esi + 4], eax
movzx edx, byte [edi + 5]
or edx, eax
mov dword [esi + 4], edx
mov al, byte [edi + 6]
mov byte [esi + 8], al
mov cl, byte [edi + 7]
mov byte [esi + 9], cl
movzx eax, byte [edi + 8]
shl eax, 8
mov dword [esi + 0xc], eax
movzx edx, byte [edi + 9]
or edx, eax
mov dword [esi + 0xc], edx
mov al, byte [edi + 0xa]
mov byte [esi + 0x10], al
mov cl, byte [edi + 0xb]
mov byte [esi + 0x11], cl
mov dl, byte [edi + 0xc]
mov byte [esi + 0x12], dl
mov al, byte [edi + 0xd]
mov byte [esi + 0x13], al
mov cl, byte [edi + 0xe]
mov byte [esi + 0x14], cl
mov dl, byte [edi + 0xf]
mov byte [esi + 0x15], dl
mov al, byte [edi + 0x10]
mov byte [esi + 0x16], al
mov cl, byte [edi + 0x11]
mov byte [esi + 0x17], cl
mov dl, byte [edi + 0x12]
mov byte [esi + 0x18], dl
mov al, byte [edi + 0x13]
mov byte [esi + 0x19], al
mov cl, byte [edi + 0x14]
mov byte [esi + 0x1a], cl
mov dl, byte [edi + 0x15]
mov byte [esi + 0x1b], dl
mov al, byte [edi + 0x16]
mov byte [esi + 0x1c], al
mov cl, byte [edi + 0x17]
mov byte [esi + 0x1d], cl
mov dl, byte [edi + 0x18]
mov byte [esi + 0x20], dl
mov al, byte [edi + 0x19]
mov byte [esi + 0x21], al
mov cl, byte [edi + 0x1a]
mov byte [esi + 0x22], cl
mov dl, byte [edi + 0x1b]
mov byte [esi + 0x23], dl
mov al, byte [edi + 0x1c]
mov byte [esi + 0x24], al
mov cl, byte [edi + 0x1d]
mov byte [esi + 0x25], cl
mov dl, byte [edi + 0x1e]
mov byte [esi + 0x26], dl
mov al, byte [edi + 0x1f]
lea ecx, [edi + 0x20]
test ecx, ecx
mov byte [esi + 0x27], al
lea ebp, [esi + 0x28]
jne 0x4105a8
xor eax, eax
jmp 0x4105b9
mov eax, ecx
lea ebx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4105b0
sub eax, ebx
push eax
push ecx
mov ecx, ebp
call fcn.00402610
mov ecx, dword [ebp]
mov ebx, dword [ecx - 0xc]
lea ecx, [ebx + edi + 0x21]
test ecx, ecx
lea ebp, [esi + 0x2c]
jne 0x4105d7
xor eax, eax
jmp 0x4105eb
mov eax, ecx
lea edx, [eax + 1]
mov dword [esp + 0x28], edx
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4105e0
sub eax, dword [esp + 0x28]
push eax
push ecx
mov ecx, ebp
call fcn.00402610
mov eax, dword [ebp]
mov eax, dword [eax - 0xc]
lea ebx, [ebx + eax + 0x22]
lea eax, [ebx + edi]
test eax, eax
lea ebp, [esi + 0x30]
jne 0x41060c
xor ecx, ecx
jmp 0x410620
mov ecx, eax
lea edx, [ecx + 1]
mov dword [esp + 0x28], edx
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x410615
sub ecx, dword [esp + 0x28]
push ecx
push eax
mov ecx, ebp
call fcn.00402610
mov eax, dword [ebp]
mov eax, dword [eax - 0xc]
lea eax, [ebx + eax + 1]
add eax, edi
lea ebx, [esi + 0x34]
jne 0x41063e
xor ecx, ecx
jmp 0x410652
mov ecx, eax
lea edx, [ecx + 1]
mov dword [esp + 0x28], edx
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x410647
sub ecx, dword [esp + 0x28]
push ecx
push eax
mov ecx, ebx
call fcn.00402610
push 2
push 0x4313f0
mov ecx, ebp
call fcn.004026b0
push 2
push 0x4313f0
mov ecx, ebx
call fcn.004026b0
mov ecx, dword [esp + 0x10]
xor eax, eax
mov al, byte [esi]
push eax
call fcn.0040f200
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], 1
mov al, byte [edi + 0x15]
mov dl, byte [edi + 0x14]
mov byte [esp + 0x29], al
mov al, byte [edi + 0x17]
mov byte [esp + 0x28], dl
mov dl, byte [edi + 0x16]
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], dl
mov edx, dword [esp + 0x28]
push esi
lea eax, [esp + 0x28]
push eax
mov dword [esi + 0x44], edx
call fcn.0040f4d0
add esi, 0x38
push eax
mov ecx, esi
mov dword [esp + 0x20], 0
call fcn.00403fa0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x1c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
pop edi
pop esi
pop ebp
pop ebx
jg 0x4106fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 4]
mov dword fs:[0], ecx
add esp, 0x10
ret 0xc