Function at 0x4c0850
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
movzx edi, byte [ecx]
lea eax, [edi - 9]
cmp eax, 0x75
ja case.0x4c086e.34
movzx eax, byte [eax + 0x4c0ea0]
mov dl, 4
jmp dword [eax*4 + 0x4c0e38]
movzx esi, byte [ecx + 1]
mov edx, 1
mov eax, edx
test byte [esi + 0x58e340], dl
je 0x4c089e
jmp 0x4c0890
add eax, edx
movzx esi, byte [eax + ecx]
test byte [esi + 0x58e340], dl
jne 0x4c0890
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x95
pop ebx
pop ebp
ret
cmp byte [ecx + 1], 0x2d
jne 0x4c08dd
movzx edx, byte [ecx + 2]
mov eax, 2
test edx, edx
je 0x4c08cf
nop
cmp edx, 0xa
je 0x4c08cf
movzx edx, byte [eax + ecx + 1]
inc eax
test edx, edx
jne 0x4c08c0
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x95
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 0x57
mov eax, 1
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x16
mov eax, 1
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x17
mov eax, 1
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 1
mov eax, 1
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x56
mov eax, 1
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x58
mov eax, 1
pop ebx
pop ebp
ret
cmp byte [ecx + 1], 0x2a
jne 0x4c0989
mov dl, byte [ecx + 2]
test dl, dl
je 0x4c0989
mov eax, 3
movzx edx, dl
cmp edx, 0x2a
jne 0x4c096f
cmp byte [eax + ecx], 0x2f
je 0x4c097a
movzx edx, byte [eax + ecx]
test edx, edx
je 0x4c097b
inc eax
jmp 0x4c0964
inc eax
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x95
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x59
mov eax, 1
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 0x5a
mov eax, 1
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
xor eax, eax
cmp byte [ecx + 1], 0x3d
pop edi
sete al
pop esi
mov dword [edx], 0x4c
pop ebx
inc eax
pop ebp
ret
movzx eax, byte [ecx + 1]
cmp eax, 0x3d
jne 0x4c09e3
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 0x4e
mov eax, 2
pop ebx
pop ebp
ret
cmp eax, 0x3e
jne 0x4c09fb
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x4b
mov eax, 2
pop ebx
pop ebp
ret
cmp eax, 0x3c
jne 0x4c0a13
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x54
mov eax, 2
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 0x4f
mov eax, 1
pop ebx
pop ebp
ret
movzx eax, byte [ecx + 1]
cmp eax, 0x3d
jne 0x4c0a42
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x50
mov eax, 2
pop ebx
pop ebp
ret
cmp eax, 0x3e
jne 0x4c0a5a
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x55
mov eax, 2
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 0x4d
mov eax, 1
pop ebx
pop ebp
ret
cmp byte [ecx + 1], 0x3d
mov eax, 2
je 0x4c0a86
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x94
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x4b
pop ebx
pop ebp
ret
cmp byte [ecx + 1], 0x7c
je 0x4c0aad
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 0x53
mov eax, 1
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x5b
mov eax, 2
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x19
mov eax, 1
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword [eax], 0x52
mov eax, 1
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x5d
mov eax, 1
pop ebx
pop ebp
ret
movzx esi, byte [ecx + 1]
mov eax, 1
test esi, esi
je 0x4c0b1e
cmp esi, edi
jne 0x4c0b14
movzx edx, byte [ecx + eax + 1]
cmp edx, edi
jne 0x4c0b1e
inc eax
movzx esi, byte [eax + ecx + 1]
inc eax
test esi, esi
jne 0x4c0b06
cmp esi, 0x27
jne 0x4c0b32
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x5e
inc eax
pop ebx
pop ebp
ret
test esi, esi
je 0x4c0a78
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x1a
inc eax
pop ebx
pop ebp
ret
movzx eax, byte [ecx + 1]
test byte [eax + 0x58e340], dl
jne case.0x4c086e.24
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x76
mov eax, 1
pop ebx
pop ebp
ret
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [esi], 0x81
test byte [edi + 0x58e340], dl
je 0x4c0b8e
jmp 0x4c0b80
movzx edi, byte [eax + ecx + 1]
inc eax
test byte [edi + 0x58e340], dl
jne 0x4c0b80
cmp byte [eax + ecx], 0x2e
jne 0x4c0bb6
movzx edi, byte [eax + ecx + 1]
inc eax
test byte [edi + 0x58e340], dl
je 0x4c0bb0
movzx edi, byte [eax + ecx + 1]
inc eax
test byte [edi + 0x58e340], dl
jne 0x4c0ba2
mov dword [esi], 0x82
mov bl, byte [eax + ecx]
cmp bl, 0x65
je 0x4c0bc3
cmp bl, 0x45
jne 0x4c0c19
mov bl, byte [eax + ecx + 1]
movzx esi, bl
test byte [esi + 0x58e340], dl
jne 0x4c0be9
cmp bl, 0x2b
je 0x4c0bdc
cmp bl, 0x2d
jne 0x4c0c19
movzx esi, byte [eax + ecx + 2]
test byte [esi + 0x58e340], dl
je 0x4c0c19
movzx esi, byte [eax + ecx + 2]
add eax, 2
test byte [esi + 0x58e340], dl
je 0x4c0c0e
lea esp, [esp]
movzx esi, byte [eax + ecx + 1]
inc eax
test byte [esi + 0x58e340], dl
jne 0x4c0c00
mov edx, dword [ebp + 8]
mov dword [edx], 0x82
jmp 0x4c0c1c
mov edx, dword [ebp + 8]
movzx esi, byte [eax + ecx]
mov bl, 0x46
test byte [esi + 0x58e340], bl
je 0x4c0e31
mov edi, edi
movzx esi, byte [eax + ecx + 1]
inc eax
mov edi, 0x94
test byte [esi + 0x58e340], bl
jne 0x4c0c30
mov dword [edx], edi
pop edi
pop esi
pop ebx
pop ebp
ret
mov edx, edi
mov eax, 1
cmp edx, 0x5d
je 0x4c0c64
movzx edx, byte [eax + ecx]
test edx, edx
je 0x4c0c64
inc eax
cmp edx, 0x5d
jne 0x4c0c56
mov ecx, dword [ebp + 8]
sub edx, 0x5d
neg edx
sbb edx, edx
pop edi
and edx, 0x7a
add edx, 0x1a
pop esi
mov dword [ecx], edx
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
movzx esi, byte [ecx + 1]
mov dword [edx], 0x85
mov dl, 4
mov eax, 1
test byte [esi + 0x58e340], dl
je 0x4c0e31
jmp 0x4c0ca0
movzx esi, byte [eax + ecx + 1]
inc eax
test byte [esi + 0x58e340], dl
jne 0x4c0ca0
pop edi
pop esi
pop ebx
pop ebp
ret
movzx esi, byte [ecx + 1]
mov dl, 4
mov eax, 1
test byte [esi + 0x58e340], dl
je case.0x4c086e.13
jmp 0x4c0cd0
movzx esi, byte [eax + ecx + 1]
inc eax
test byte [esi + 0x58e340], dl
jne 0x4c0cd0
cmp eax, 1
jle case.0x4c086e.13
mov ecx, dword [ebp + 8]
pop edi
pop esi
mov dword [ecx], 0x84
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
mov dword [edx], 0x85
movzx edx, byte [ecx + 1]
xor esi, esi
lea eax, [esi + 1]
test edx, edx
je 0x4c0d74
mov bl, 0x46
lea esp, [esp]
movzx edi, dl
test byte [edi + 0x58e340], bl
je 0x4c0d1e
inc esi
jmp 0x4c0d2f
cmp edx, 0x28
je 0x4c0d3b
cmp edx, 0x3a
jne 0x4c0d6c
cmp byte [ecx + eax + 1], dl
jne 0x4c0d6c
inc eax
movzx edx, byte [eax + ecx + 1]
inc eax
test edx, edx
jne 0x4c0d10
jmp 0x4c0d6c
test esi, esi
jle 0x4c0d6e
nop
movzx edx, byte [eax + ecx + 1]
inc eax
test edx, edx
je 0x4c0d5b
test byte [edx + 0x58e340], 1
jne 0x4c0d5b
cmp edx, 0x29
jne 0x4c0d40
inc eax
jmp 0x4c0d6c
cmp edx, 0x29
jne 0x4c0d63
inc eax
jmp 0x4c0d6c
mov ecx, dword [ebp + 8]
mov dword [ecx], 0x94
test esi, esi
jne 0x4c0e31
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x94
pop ebx
pop ebp
ret
cmp byte [ecx + 1], 0x27
jne case.0x4c086e.34
movzx edx, byte [ecx + 2]
mov esi, dword [ebp + 8]
mov dword [esi], 0x83
mov eax, 2
test edx, edx
je 0x4c0dc0
mov bl, 8
cmp edx, 0x27
je 0x4c0dc0
movzx edx, dl
test byte [edx + 0x58e340], bl
jne 0x4c0db6
mov dword [esi], 0x94
movzx edx, byte [eax + ecx + 1]
inc eax
test edx, edx
jne 0x4c0da0
mov ecx, eax
and ecx, reloc.WS2_32.dll_accept
jns 0x4c0dcf
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4c0dd5
test edx, edx
jne 0x4c0ddf
mov dword [esi], 0x94
test edx, edx
je 0x4c0e31
pop edi
pop esi
inc eax
pop ebx
pop ebp
ret
mov bl, 0x46
test byte [edi + 0x58e340], bl
jne 0x4c0e02
mov edx, dword [ebp + 8]
pop edi
pop esi
mov dword [edx], 0x94
mov eax, 1
pop ebx
pop ebp
ret
movzx eax, byte [ecx + 1]
mov edi, 1
test byte [eax + 0x58e340], bl
je 0x4c0e21
movzx edx, byte [edi + ecx + 1]
inc edi
test byte [edx + 0x58e340], bl
jne 0x4c0e13
push ecx
call fcn.004c0770
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret