Function at 0x51c340
Capabilities:
Parse pe header

Disassembly:
push ebx
mov bl, byte [edx]
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
movzx edi, bl
movzx eax, byte [edi + str.eeeeeeeee_a_ae_a_aeeeeeeeeeeeeeeeeee_a]
cmp eax, 0x1a
ja case.default.0x51c35f
mov cl, 4
jmp dword [eax*4 + 0x51c92c]
movzx esi, byte [edx + 1]
mov ecx, 1
mov eax, ecx
test byte [esi + 0x59ced8], cl
je 0x51c38e
lea esp, [esp]
add eax, ecx
movzx esi, byte [eax + edx]
test byte [esi + 0x59ced8], cl
jne 0x51c380
pop edi
pop esi
mov dword [ebp], 0xa3
pop ebp
pop ebx
ret
cmp byte [edx + 1], 0x2d
jne 0x51c3cb
movzx ecx, byte [edx + 2]
mov eax, 2
test ecx, ecx
je 0x51c3bf
lea ecx, [ecx]
cmp ecx, 0xa
je 0x51c3bf
movzx ecx, byte [eax + edx + 1]
inc eax
test ecx, ecx
jne 0x51c3b0
pop edi
pop esi
mov dword [ebp], 0xa3
pop ebp
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x59
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x16
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x17
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 1
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x58
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x5a
pop ebp
mov eax, 1
pop ebx
ret
cmp byte [edx + 1], 0x2a
jne 0x51c469
mov cl, byte [edx + 2]
test cl, cl
je 0x51c469
mov eax, 3
movzx ecx, cl
cmp ecx, 0x2a
jne 0x51c451
cmp byte [eax + edx], 0x2f
je 0x51c45c
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x51c45d
inc eax
jmp 0x51c446
inc eax
pop edi
pop esi
mov dword [ebp], 0xa3
pop ebp
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x5b
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x5c
pop ebp
mov eax, 1
pop ebx
ret
xor eax, eax
cmp byte [edx + 1], 0x3d
pop edi
sete al
pop esi
mov dword [ebp], 0x4e
pop ebp
pop ebx
inc eax
ret
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x51c4bb
pop edi
pop esi
mov dword [ebp], 0x50
pop ebp
mov eax, 2
pop ebx
ret
cmp eax, 0x3e
je 0x51c532
cmp eax, 0x3c
jne 0x51c4d6
pop edi
pop esi
mov dword [ebp], 0x56
pop ebp
mov eax, 2
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x51
pop ebp
mov eax, 1
pop ebx
ret
movzx eax, byte [edx + 1]
cmp eax, 0x3d
jne 0x51c501
pop edi
pop esi
mov dword [ebp], 0x52
pop ebp
mov eax, 2
pop ebx
ret
cmp eax, 0x3e
jne 0x51c517
pop edi
pop esi
mov dword [ebp], 0x57
pop ebp
mov eax, 2
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x4f
pop ebp
mov eax, 1
pop ebx
ret
cmp byte [edx + 1], 0x3d
jne case.default.0x51c35f
pop edi
pop esi
mov dword [ebp], 0x4d
pop ebp
mov eax, 2
pop ebx
ret
cmp byte [edx + 1], 0x7c
je 0x51c55a
pop edi
pop esi
mov dword [ebp], 0x55
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x5d
pop ebp
mov eax, 2
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x1a
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x54
pop ebp
mov eax, 1
pop ebx
ret
pop edi
pop esi
mov dword [ebp], 0x5f
pop ebp
mov eax, 1
pop ebx
ret
movzx esi, byte [edx + 1]
mov eax, 1
test esi, esi
je 0x51c5c8
jmp 0x51c5b0
cmp esi, edi
jne 0x51c5be
movzx ecx, byte [edx + eax + 1]
cmp ecx, edi
jne 0x51c5c8
inc eax
movzx esi, byte [eax + edx + 1]
inc eax
test esi, esi
jne 0x51c5b0
cmp esi, 0x27
jne 0x51c5da
pop edi
pop esi
mov dword [ebp], 0x61
pop ebp
inc eax
pop ebx
ret
test esi, esi
je 0x51c72f
pop edi
pop esi
mov dword [ebp], 0x1b
pop ebp
inc eax
pop ebx
ret
movzx eax, byte [edx + 1]
test byte [eax + 0x59ced8], cl
jne case.0x51c35f.3
pop edi
pop esi
mov dword [ebp], 0x7a
pop ebp
mov eax, 1
pop ebx
ret
mov dword [ebp], 0x86
cmp bl, 0x30
jne 0x51c663
mov al, byte [edx + 1]
cmp al, 0x78
je 0x51c623
cmp al, 0x58
jne 0x51c663
movzx eax, byte [edx + 2]
mov bl, 8
test byte [eax + 0x59ced8], bl
je 0x51c663
movzx ecx, byte [edx + 3]
mov eax, 3
test byte [ecx + 0x59ced8], bl
je 0x51c927
jmp 0x51c650
movzx ecx, byte [eax + edx + 1]
inc eax
test byte [ecx + 0x59ced8], bl
jne 0x51c650
pop edi
pop esi
pop ebp
pop ebx
ret
xor eax, eax
test byte [edi + 0x59ced8], cl
je 0x51c67e
lea ecx, [ecx]
movzx esi, byte [eax + edx + 1]
inc eax
test byte [esi + 0x59ced8], cl
jne 0x51c670
cmp byte [eax + edx], 0x2e
jne 0x51c6a7
movzx esi, byte [eax + edx + 1]
inc eax
test byte [esi + 0x59ced8], cl
je 0x51c6a0
movzx esi, byte [eax + edx + 1]
inc eax
test byte [esi + 0x59ced8], cl
jne 0x51c692
mov dword [ebp], 0x84
mov bl, byte [eax + edx]
cmp bl, 0x65
je 0x51c6b4
cmp bl, 0x45
jne 0x51c705
mov bl, byte [eax + edx + 1]
movzx esi, bl
test byte [esi + 0x59ced8], cl
jne 0x51c6da
cmp bl, 0x2b
je 0x51c6cd
cmp bl, 0x2d
jne 0x51c705
movzx esi, byte [eax + edx + 2]
test byte [esi + 0x59ced8], cl
je 0x51c705
movzx esi, byte [eax + edx + 2]
add eax, 2
test byte [esi + 0x59ced8], cl
je 0x51c6fe
lea ebx, [ebx]
movzx esi, byte [eax + edx + 1]
inc eax
test byte [esi + 0x59ced8], cl
jne 0x51c6f0
mov dword [ebp], 0x84
movzx ecx, byte [eax + edx]
test byte [ecx + 0x59ced8], 0x46
je 0x51c927
jmp 0x51c720
movzx ecx, byte [eax + edx + 1]
inc eax
test byte [ecx + 0x59ced8], 0x46
jne 0x51c720
pop edi
pop esi
mov dword [ebp], 0xa4
pop ebp
pop ebx
ret
mov ecx, edi
mov eax, 1
cmp ecx, 0x5d
je 0x51c755
movzx ecx, byte [eax + edx]
test ecx, ecx
je 0x51c755
inc eax
cmp ecx, 0x5d
jne 0x51c747
sub ecx, 0x5d
neg ecx
sbb ecx, ecx
pop edi
and ecx, 0x89
add ecx, 0x1b
pop esi
mov dword [ebp], ecx
pop ebp
pop ebx
ret
movzx esi, byte [edx + 1]
mov cl, 4
mov dword [ebp], 0x87
mov eax, 1
test byte [esi + 0x59ced8], cl
je 0x51c927
jmp 0x51c790
movzx esi, byte [eax + edx + 1]
inc eax
test byte [esi + 0x59ced8], cl
jne 0x51c790
pop edi
pop esi
pop ebp
pop ebx
ret
movzx ecx, byte [edx + 1]
xor esi, esi
mov dword [ebp], 0x87
lea eax, [esi + 1]
test ecx, ecx
je 0x51c825
lea ebx, [esi + 0x3a]
lea ebx, [ebx]
movzx edi, cl
test byte [edi + 0x59ced8], 0x46
je 0x51c7cf
inc esi
jmp 0x51c7df
cmp ecx, 0x28
je 0x51c7eb
cmp ecx, ebx
jne 0x51c81d
cmp byte [edx + eax + 1], bl
jne 0x51c81d
inc eax
movzx ecx, byte [eax + edx + 1]
inc eax
test ecx, ecx
jne 0x51c7c0
jmp 0x51c81d
test esi, esi
jle 0x51c81f
nop
movzx ecx, byte [eax + edx + 1]
inc eax
test ecx, ecx
je 0x51c80e
movzx edi, cl
test byte [edi + 0x59ced8], 1
jne 0x51c80e
cmp ecx, 0x29
jne 0x51c7f0
inc eax
jmp 0x51c81d
cmp ecx, 0x29
jne 0x51c816
inc eax
jmp 0x51c81d
mov dword [ebp], 0xa4
test esi, esi
jne 0x51c927
pop edi
pop esi
mov dword [ebp], 0xa4
pop ebp
pop ebx
ret
movzx esi, byte [edx + 1]
mov ecx, 1
mov eax, ecx
cmp byte [esi + str.eeeeeeeee_a_ae_a_aeeeeeeeeeeeeeeeeee_a], cl
ja 0x51c852
add eax, ecx
movzx esi, byte [eax + edx]
cmp byte [esi + str.eeeeeeeee_a_ae_a_aeeeeeeeeeeeeeeeeee_a], cl
jbe 0x51c844
movzx esi, byte [eax + edx]
test byte [esi + 0x59ced8], 0x46
je 0x51c866
add eax, ecx
jmp 0x51c8f3
push ebp
push edx
mov ecx, eax
mov dword [ebp], 0x1b
call fcn.0051c280
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
ret
cmp byte [edx + 1], 0x27
jne case.0x51c35f.2
movzx ecx, byte [edx + 2]
mov bl, 8
mov dword [ebp], 0x85
mov eax, 2
test byte [ecx + 0x59ced8], bl
je 0x51c8ae
mov edi, edi
movzx ecx, byte [eax + edx + 1]
inc eax
test byte [ecx + 0x59ced8], bl
jne 0x51c8a0
mov cl, byte [eax + edx]
cmp cl, 0x27
jne 0x51c8c7
mov esi, eax
and esi, reloc.WS2_32.dll_accept
jns 0x51c8c5
dec esi
or esi, 0xfffffffe
inc esi
je 0x51c8e0
mov dword [ebp], 0xa4
test cl, cl
je 0x51c8e0
cmp cl, 0x27
je 0x51c8e0
mov cl, byte [eax + edx + 1]
inc eax
test cl, cl
jne 0x51c8d2
cmp byte [eax + edx], 0
je 0x51c927
pop edi
pop esi
pop ebp
inc eax
pop ebx
ret
mov ecx, 1
mov eax, ecx
movzx esi, byte [eax + edx]
test byte [esi + 0x59ced8], 0x46
je 0x51c90f
add eax, ecx
movzx esi, byte [eax + edx]
test byte [esi + 0x59ced8], 0x46
jne 0x51c900
pop edi
pop esi
mov dword [ebp], 0x1b
pop ebp
pop ebx
ret
mov dword [ebp], 0xa4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
ret