Function at 0x46d864
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x24
and dword [esp + 0xc], 0
mov eax, accept
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov dword [edx], eax
jle 0x46dba8
push ebx
push ebp
mov ebp, dword [esp + 0x38]
push esi
add ebp, 2
push edi
mov dword [esp + 0x24], ebp
mov ebx, dword [esp + 0x38]
movsx cx, byte [ebp]
push 0xfffffffffffffffe
mov ax, word [ebx + 4]
shl cx, 7
sub ax, cx
movsx cx, byte [ebp + 1]
movzx esi, ax
mov ax, word [ebx + 6]
shl cx, 7
sub ax, cx
movsx cx, byte [ebp + 2]
movzx edx, ax
mov ax, word [ebx + 8]
shl cx, 7
sub ax, cx
mov ecx, dword [esp + 0x40]
movzx eax, ax
cwde
mov dword [esp + 0x14], eax
mov edi, dword [ecx + 0x10]
mov ebx, dword [ecx + 0xc]
movsx eax, dx
mov edx, dword [ecx + 8]
mov dword [esp + 0x18], eax
movsx eax, si
mov esi, dword [ecx + 4]
movsx cx, byte [ebp - 1]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
shl cx, 7
mov ax, word [eax + 2]
sub ax, cx
cwde
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov ebp, dword [eax]
mov eax, dword [esp + 0x28]
movsx cx, byte [eax - 2]
mov eax, dword [esp + 0x3c]
shl cx, 7
mov ax, word [eax]
sub ax, cx
movsx ecx, ax
movzx eax, dx
imul eax, dword [esp + 0x1c]
sar edx, 0xf
sar eax, 0xf
and eax, 0xfffffffe
mov dword [esp + 0x44], eax
movzx eax, di
imul eax, dword [esp + 0x14]
sar edi, 0xf
sar eax, 0xf
and eax, 0xfffffffe
add dword [esp + 0x44], eax
movzx eax, bx
imul eax, dword [esp + 0x18]
sar ebx, 0xf
sar eax, 0xf
and eax, 0xfffffffe
add dword [esp + 0x44], eax
movzx eax, si
imul eax, dword [esp + 0x24]
sar esi, 0xf
sar eax, 0xf
and eax, 0xfffffffe
add dword [esp + 0x44], eax
pop eax
and edx, eax
and edi, eax
imul edx, dword [esp + 0x18]
and ebx, eax
imul edi, dword [esp + 0x10]
and esi, eax
imul ebx, dword [esp + 0x14]
add dword [esp + 0x40], edx
mov edx, dword [esp + 0x40]
add edx, edi
add edx, ebx
imul esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x44]
add edx, esi
movzx eax, bp
imul eax, ecx
sar ebp, 0x10
imul ebp, ecx
sar eax, 0x10
add edx, eax
mov eax, dword [esp + 0x1c]
add edx, ebp
movzx ebp, byte [eax + ebx]
movsx eax, word [esp + 0x48]
imul ebp, eax
movzx eax, dx
imul eax, ecx
sar edx, 0x10
imul edx, ecx
sar eax, 0x10
add ebp, eax
mov eax, dword [esp + 0x3c]
add ebp, edx
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
mov esi, dword [eax + 0x1c]
mov edi, dword [eax + 0x18]
movzx ebx, cx
imul ebx, dword [esp + 0x10]
movzx eax, dx
imul eax, dword [esp + 0x14]
sar ecx, 0xf
and ecx, 0xfffffffe
sar edx, 0xf
imul ecx, dword [esp + 0x10]
and edx, 0xfffffffe
imul edx, dword [esp + 0x14]
sar eax, 0xf
and eax, 0xfffffffe
sar ebx, 0xf
and ebx, 0xfffffffe
add ebx, eax
movzx eax, si
imul eax, dword [esp + 0x18]
sar esi, 0xf
and esi, 0xfffffffe
imul esi, dword [esp + 0x18]
sar eax, 0xf
and eax, 0xfffffffe
add ebx, eax
movzx eax, di
add ebx, ecx
sar edi, 0x10
mov ecx, dword [esp + 0x20]
add ebx, edx
imul eax, ecx
add ebx, esi
imul edi, ecx
sar eax, 0x10
add ebx, eax
add ebx, edi
movzx eax, bx
imul eax, ecx
sar ebx, 0x10
imul ebx, ecx
sar eax, 0x10
add ebx, ebp
mov ebp, dword [esp + 0x18]
add ebx, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x34]
mov esi, dword [eax + 0x30]
movzx edi, cx
imul edi, dword [esp + 0x10]
movzx eax, dx
imul eax, dword [esp + 0x14]
sar edi, 0xf
and edi, 0xfffffffe
sar eax, 0xf
and eax, 0xfffffffe
add edi, eax
movzx eax, si
imul eax, ebp
sar ecx, 0xf
and ecx, 0xfffffffe
sar edx, 0xf
imul ecx, dword [esp + 0x10]
and edx, 0xfffffffe
imul edx, dword [esp + 0x14]
sar eax, 0x10
add edi, eax
sar esi, 0x10
imul esi, ebp
add edi, ecx
add edi, edx
add edi, esi
movzx eax, di
imul eax, ebp
sar edi, 0x10
imul edi, ebp
mov ebp, dword [esp + 0x10]
sar eax, 0x10
add edi, ebx
mov ebx, dword [esp + 0x14]
add edi, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x48]
movzx esi, cx
sar ecx, 0xf
imul esi, ebp
and ecx, 0xfffffffe
movzx eax, dx
imul eax, ebx
imul ecx, ebp
sar edx, 0x10
sar esi, 0xf
and esi, 0xfffffffe
imul edx, ebx
sar eax, 0x10
add esi, eax
add esi, ecx
add esi, edx
movzx eax, si
imul eax, ebx
sar esi, 0x10
imul esi, ebx
sar eax, 0x10
lea edx, [edi + esi]
add edx, eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x60]
movzx ecx, ax
imul ecx, ebp
sar eax, 0x10
imul eax, ebp
sar ecx, 0x10
add ecx, eax
movzx eax, cx
sar ecx, 0x10
imul eax, ebp
imul ecx, ebp
sar eax, 0x10
add ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jge 0x46db80
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov byte [edx], al
jmp 0x46db84
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
add ebp, 5
inc eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x4c]
jl 0x46d899
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x24
ret