Function at 0x437e20
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x6c]
mov ebx, ecx
movzx ecx, byte [edi + 1]
mov esi, eax
mov eax, dword [esp + 0x68]
cmp ecx, dword [eax + 0x30]
jae 0x43807b
mov eax, dword [eax + 0x28]
cmp eax, 5
je 0x437e51
cmp eax, 6
jne 0x43807b
movzx edx, word [edi + 6]
mov ebp, dword [sym.imp.WS2_32.dll_ntohs]
push edx
call ebp
movzx eax, ax
add dword [esi], eax
mov esi, dword [esi]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x2878]
add eax, dword [ebx + 0x2874]
cmp esi, eax
ja 0x43807b
movzx eax, byte [edi + 1]
mov edx, dword [esp + 0x68]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + 0x2c]
lea esi, [eax + ecx*8]
movzx ecx, word [edi + 4]
push ecx
mov dword [esp + 0x28], esi
call ebp
movzx ebp, ax
movzx eax, word [esi + 0x26]
mov edx, ebp
shr edx, 0xc
movzx ecx, dx
mov dx, ax
shr dx, 0xc
movzx edx, dx
cmp ebp, eax
jae 0x437ebf
add ecx, 0x10
cmp cx, dx
jb 0x438045
movzx eax, cx
add edx, 7
cmp eax, edx
jge 0x438045
mov ecx, dword [edi + 0xc]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
push ecx
call esi
mov edx, dword [edi + 8]
push edx
mov dword [esp + 0x20], eax
call esi
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x14]
push eax
call esi
mov ecx, dword [edi + 0x10]
mov ebx, eax
push ecx
mov dword [esp + 0x24], ebx
call esi
mov dword [esp + 0x28], eax
cmp ebx, eax
jae 0x43807b
mov edx, dword [esp + 0x14]
lea ecx, [ebx + edx]
mov dword [esp + 0x2c], ecx
cmp ecx, eax
ja 0x43807b
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x1c], ecx
jae 0x43807b
mov ebx, dword [esp + 0x24]
mov esi, dword [ebx + 0x2c]
add ebx, 0x28
cmp esi, ebx
je 0x437f6b
mov edx, dword [esp + 0x24]
movzx edx, word [edx + 0x26]
movzx ecx, word [esi + 8]
cmp ebp, edx
jb 0x437f54
cmp cx, dx
jb 0x437f64
jmp 0x437f59
cmp cx, dx
jae 0x437f6b
movzx ecx, cx
cmp ecx, ebp
jbe 0x43804f
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x437f45
mov esi, edi
push 1
mov ecx, 0xc
lea edi, [esp + 0x34]
push eax
xor ebx, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.00436600
add esp, 8
test eax, eax
je 0x43807b
mov cx, word [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov word [esp + 0x36], cx
mov ecx, dword [esp + 0x18]
push ecx
push eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x38]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x30]
push eax
push ecx
mov word [esp + 0x42], bp
mov word [esp + 0x44], bp
mov dword [esp + 0x50], edx
call fcn.004371a0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x43807b
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x44]
mov edx, ecx
shr edx, 5
lea eax, [eax + edx*4]
and ecx, 0x1f
mov edx, 1
shl edx, cl
test dword [eax], edx
jne 0x438045
dec dword [esi + 0x40]
or dword [eax], edx
mov ecx, dword [esi + 0x48]
mov eax, dword [ecx + 0xc]
cmp dword [esp + 0x2c], eax
jbe 0x438019
sub eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
add eax, dword [esp + 0x20]
push edx
add edi, 0x18
push edi
push eax
call fcn.004915e0
add esp, 0xc
cmp dword [esi + 0x40], 0
ja 0x438045
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
call fcn.004370f0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
movzx edx, word [esi + 8]
cmp edx, ebp
jb 0x437f6b
mov cl, byte [esi + 0xc]
and cl, 0xf
cmp cl, 8
jne 0x43807b
mov edx, dword [esi + 0x48]
cmp eax, dword [edx + 0xc]
jne 0x43807b
mov eax, dword [esp + 0x18]
cmp eax, dword [esi + 0x3c]
je 0x437fe3
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x54
ret