Function at 0x10091950
Capabilities:
Parse pe header

Disassembly:
mov ecx, dword [esp + 4]
xor eax, eax
push ebx
push esi
mov al, byte [ecx]
push edi
mov edi, eax
lea esi, [edi - 9]
cmp esi, 0x75
ja case.0x10091973.34
mov dl, 4
xor eax, eax
mov al, byte [esi + 0x10091fc4]
jmp dword [eax*4 + 0x10091f5c]
xor edx, edx
mov eax, 1
mov dl, byte [ecx + 1]
test byte [edx + 0x100f8814], al
je 0x1009199b
inc eax
xor edx, edx
mov dl, byte [eax + ecx]
test byte [edx + 0x100f8814], 1
jne 0x1009198c
mov ecx, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [ecx], 0x95
ret
cmp byte [ecx + 1], 0x2d
jne 0x100919da
xor edx, edx
mov eax, 2
mov dl, byte [ecx + 2]
test edx, edx
je 0x100919cc
cmp edx, 0xa
je 0x100919cc
inc eax
xor edx, edx
mov dl, byte [eax + ecx]
test edx, edx
jne 0x100919bd
mov edx, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [edx], 0x95
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x57
mov eax, 1
ret
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [ecx], 0x16
pop ebx
ret
mov edx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [edx], 0x17
pop ebx
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 1
mov eax, 1
ret
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [ecx], 0x56
pop ebx
ret
mov edx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [edx], 0x58
pop ebx
ret
cmp byte [ecx + 1], 0x2a
jne 0x10091a8a
mov dl, byte [ecx + 2]
test dl, dl
je 0x10091a8a
mov eax, 3
and edx, 0xff
cmp edx, 0x2a
jne 0x10091a6f
cmp byte [eax + ecx], 0x2f
je 0x10091a7b
xor edx, edx
mov dl, byte [eax + ecx]
test edx, edx
je 0x10091a7c
inc eax
jmp 0x10091a64
inc eax
mov ecx, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [ecx], 0x95
ret
mov edx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [edx], 0x59
pop ebx
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x5a
mov eax, 1
ret
mov edx, dword [esp + 0x14]
xor eax, eax
pop edi
pop esi
mov dword [edx], 0x4c
mov dl, byte [ecx + 1]
cmp dl, 0x3d
pop ebx
sete al
inc eax
ret
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x10091ae7
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x4e
mov eax, 2
ret
cmp eax, 0x3e
jne 0x10091aff
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 2
mov dword [ecx], 0x4b
pop ebx
ret
cmp eax, 0x3c
jne 0x10091b17
mov edx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 2
mov dword [edx], 0x54
pop ebx
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x4f
mov eax, 1
ret
xor eax, eax
mov al, byte [ecx + 1]
cmp eax, 0x3d
jne 0x10091b47
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 2
mov dword [ecx], 0x50
pop ebx
ret
cmp eax, 0x3e
jne 0x10091b5f
mov edx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 2
mov dword [edx], 0x55
pop ebx
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x4d
mov eax, 1
ret
cmp byte [ecx + 1], 0x3d
je 0x10091b8b
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 2
mov dword [ecx], 0x94
pop ebx
ret
mov edx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 2
mov dword [edx], 0x4b
pop ebx
ret
cmp byte [ecx + 1], 0x7c
je 0x10091bb7
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x53
mov eax, 1
ret
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 2
mov dword [ecx], 0x5b
pop ebx
ret
mov edx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [edx], 0x19
pop ebx
ret
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x52
mov eax, 1
ret
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [ecx], 0x5d
pop ebx
ret
xor edx, edx
mov eax, 1
mov dl, byte [ecx + 1]
mov esi, edx
test esi, esi
je 0x10091c2e
cmp esi, edi
jne 0x10091c22
xor edx, edx
mov dl, byte [ecx + eax + 1]
cmp edx, edi
jne 0x10091c2e
inc eax
inc eax
xor edx, edx
mov dl, byte [eax + ecx]
mov esi, edx
test esi, esi
jne 0x10091c13
cmp esi, 0x27
jne 0x10091c42
mov ecx, dword [esp + 0x14]
pop edi
pop esi
inc eax
mov dword [ecx], 0x5e
pop ebx
ret
test esi, esi
je 0x10091c55
mov edx, dword [esp + 0x14]
pop edi
pop esi
inc eax
mov dword [edx], 0x1a
pop ebx
ret
mov ecx, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [ecx], 0x94
ret
xor eax, eax
mov al, byte [ecx + 1]
test byte [eax + 0x100f8814], dl
jne case.0x10091973.24
mov ecx, dword [esp + 0x14]
pop edi
pop esi
mov eax, 1
mov dword [ecx], 0x76
pop ebx
ret
mov esi, dword [esp + 0x14]
xor ebx, ebx
xor eax, eax
mov dword [esi], 0x81
mov bl, byte [ecx]
test byte [ebx + 0x100f8814], dl
je 0x10091ca9
inc eax
xor ebx, ebx
mov bl, byte [eax + ecx]
test byte [ebx + 0x100f8814], dl
jne 0x10091c9b
cmp byte [eax + ecx], 0x2e
jne 0x10091cd1
inc eax
xor ebx, ebx
mov bl, byte [eax + ecx]
test byte [ebx + 0x100f8814], dl
je 0x10091ccb
inc eax
xor ebx, ebx
mov bl, byte [eax + ecx]
test byte [ebx + 0x100f8814], dl
jne 0x10091cbd
mov dword [esi], 0x82
mov bl, byte [eax + ecx]
cmp bl, 0x65
je 0x10091cde
cmp bl, 0x45
jne 0x10091d34
mov bl, byte [eax + ecx + 1]
mov byte [esp + 0x14], bl
and ebx, 0xff
test byte [ebx + 0x100f8814], dl
jne 0x10091d10
mov bl, byte [esp + 0x14]
cmp bl, 0x2b
je 0x10091d02
cmp bl, 0x2d
jne 0x10091d34
xor ebx, ebx
mov bl, byte [eax + ecx + 2]
test byte [ebx + 0x100f8814], dl
je 0x10091d34
add eax, 2
xor ebx, ebx
mov bl, byte [eax + ecx]
test byte [ebx + 0x100f8814], dl
je 0x10091d2e
inc eax
xor ebx, ebx
mov bl, byte [eax + ecx]
test byte [ebx + 0x100f8814], dl
jne 0x10091d20
mov dword [esi], 0x82
xor edx, edx
mov bl, 0x46
mov dl, byte [eax + ecx]
test byte [edx + 0x100f8814], bl
je 0x10091f58
inc eax
xor edx, edx
mov dword [esi], 0x94
mov dl, byte [eax + ecx]
test byte [edx + 0x100f8814], bl
jne 0x10091d47
pop edi
pop esi
pop ebx
ret
mov edx, edi
mov eax, 1
cmp edx, 0x5d
je 0x10091d7a
xor edx, edx
mov dl, byte [eax + ecx]
test edx, edx
je 0x10091d7a
inc eax
cmp edx, 0x5d
jne 0x10091d6b
mov ecx, dword [esp + 0x14]
sub edx, 0x5d
neg edx
sbb edx, edx
pop edi
and edx, 0x7a
pop esi
add edx, 0x1a
pop ebx
mov dword [ecx], edx
ret
mov edx, dword [esp + 0x14]
xor eax, eax
mov esi, 1
mov dword [edx], 0x85
mov al, byte [ecx + 1]
mov dl, 4
test byte [eax + 0x100f8814], dl
je 0x10091f56
inc esi
xor eax, eax
mov al, byte [esi + ecx]
test byte [eax + 0x100f8814], dl
jne 0x10091db3
mov eax, esi
pop edi
pop esi
pop ebx
ret
xor edx, edx
mov esi, 1
mov dl, byte [ecx + 1]
mov eax, edx
mov dl, 4
test byte [eax + 0x100f8814], dl
je case.0x10091973.13
inc esi
xor eax, eax
mov al, byte [esi + ecx]
test byte [eax + 0x100f8814], dl
jne 0x10091ddd
cmp esi, 1
jle case.0x10091973.13
mov ecx, dword [esp + 0x14]
mov eax, esi
pop edi
pop esi
mov dword [ecx], 0x84
pop ebx
ret
mov edi, dword [esp + 0x14]
xor edx, edx
xor esi, esi
mov eax, 1
mov dword [edi], 0x85
mov dl, byte [ecx + 1]
test edx, edx
je 0x10091e8c
push ebp
mov bl, 0x46
mov ebp, edx
and ebp, 0xff
test byte [ebp + 0x100f8814], bl
je 0x10091e30
inc esi
jmp 0x10091e42
cmp edx, 0x28
je 0x10091e4e
cmp edx, 0x3a
jne 0x10091e83
cmp byte [ecx + eax + 1], 0x3a
jne 0x10091e83
inc eax
inc eax
xor edx, edx
mov dl, byte [eax + ecx]
test edx, edx
je 0x10091e83
jmp 0x10091e1d
test esi, esi
jle 0x10091e83
inc eax
xor edx, edx
mov dl, byte [eax + ecx]
test edx, edx
je 0x10091e75
mov ebx, edx
and ebx, 0xff
test byte [ebx + 0x100f8814], 1
jne 0x10091e75
cmp edx, 0x29
jne 0x10091e52
inc eax
jmp 0x10091e83
cmp edx, 0x29
jne 0x10091e7d
inc eax
jmp 0x10091e83
mov dword [edi], 0x94
test esi, esi
pop ebp
jne 0x10091f58
mov dword [edi], 0x94
pop edi
pop esi
pop ebx
ret
cmp byte [ecx + 1], 0x27
jne case.0x10091973.34
mov esi, dword [esp + 0x14]
xor edx, edx
mov eax, 2
mov dword [esi], 0x83
mov dl, byte [ecx + 2]
mov edi, edx
mov dl, 8
test byte [edi + 0x100f8814], dl
je 0x10091eca
inc eax
xor ebx, ebx
mov bl, byte [eax + ecx]
test byte [ebx + 0x100f8814], dl
jne 0x10091ebc
cmp byte [eax + ecx], 0x27
jne 0x10091ee1
mov edx, eax
and edx, reloc.WS2_32.dll_accept
jns 0x10091edf
dec edx
or edx, 0xfffffffe
inc edx
je 0x10091efc
mov dword [esi], 0x94
mov dl, byte [eax + ecx]
test dl, dl
je 0x10091efc
cmp dl, 0x27
je 0x10091efc
mov dl, byte [eax + ecx + 1]
inc eax
test dl, dl
jne 0x10091eee
cmp byte [eax + ecx], 0
je 0x10091f58
pop edi
pop esi
inc eax
pop ebx
ret
mov al, byte [edi + 0x100f8814]
mov bl, 0x46
test bl, al
jne 0x10091f26
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov dword [eax], 0x94
mov eax, 1
ret
xor edx, edx
mov esi, 1
mov dl, byte [ecx + 1]
test byte [edx + 0x100f8814], bl
je 0x10091f46
inc esi
xor eax, eax
mov al, byte [esi + ecx]
test byte [eax + 0x100f8814], bl
jne 0x10091f38
push esi
push ecx
call fcn.10092040
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [ecx], eax
mov eax, esi
pop edi
pop esi
pop ebx
ret