Function at 0x4a909c
Capabilities:
Parse pe header

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
xor edx, edx
inc edx
push 4
movzx ecx, byte [edi]
mov eax, ecx
pop ebx
cmp ecx, 0x31
ja 0x4a9252
je case.0x4a9283.50
cmp ecx, 0x26
ja 0x4a9192
je 0x4a918a
cmp ecx, 0x21
ja 0x4a912d
je 0x4a9118
sub eax, 9
je 0x4a90ee
sub eax, edx
je 0x4a90ee
dec eax
sub eax, edx
je 0x4a90ee
sub eax, edx
je 0x4a90ee
sub eax, 0x13
jne case.default.0x4a9283
movzx eax, byte [edi + 1]
xor edx, edx
inc edx
test byte [eax + 0x606840], dl
je 0x4a910b
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x606840], 1
jne 0x4a90fd
mov dword [esi], 0x95
mov eax, edx
jmp 0x4a95ba
cmp byte [edi + 1], 0x3d
je 0x4a93b2
mov dword [esi], 0x94
jmp 0x4a93a6
sub eax, 0x22
je case.0x4a919e.39
sub eax, 1
je 0x4a9155
sub eax, 1
je 0x4a9445
sub eax, 1
jne case.default.0x4a9283
mov dword [esi], 0x5a
jmp 0x4a91d3
movzx eax, byte [edi + 1]
push 4
pop ebx
test byte [eax + 0x606840], bl
je 0x4a9445
mov eax, edx
inc eax
movzx ecx, byte [eax + edi]
test byte [ecx + 0x606840], bl
jne 0x4a916a
cmp eax, edx
jle 0x4a9445
mov dword [esi], 0x84
jmp 0x4a95ba
mov dword [esi], 0x52
jmp 0x4a91d3
sub eax, 0x27
cmp eax, 9
ja case.default.0x4a9283
jmp dword [eax*4 + 0x4a95c0]
cmp byte [edi + 1], 0x2d
jne 0x4a91cd
movzx ecx, byte [edi + 2]
push 2
pop eax
jmp 0x4a91be
cmp ecx, 0xa
je 0x4a91c2
inc eax
movzx ecx, byte [eax + edi]
test ecx, ecx
jne 0x4a91b4
mov dword [esi], 0x95
jmp 0x4a95ba
mov dword [esi], 0x57
xor eax, eax
inc eax
jmp 0x4a95ba
mov dword [esi], 0x16
jmp 0x4a91d3
mov dword [esi], 0x17
jmp 0x4a91d3
mov dword [esi], 0x56
jmp 0x4a91d3
mov dword [esi], 0x58
jmp 0x4a91d3
cmp byte [edi + 1], 0x2a
jne 0x4a922e
mov al, byte [edi + 2]
test al, al
je 0x4a922e
push 3
pop ecx
movzx edx, al
cmp edx, 0x2a
jne 0x4a9219
cmp byte [ecx + edi], 0x2f
je 0x4a9224
movzx edx, byte [ecx + edi]
test edx, edx
je 0x4a9224
inc ecx
jmp 0x4a920e
test edx, edx
lea eax, [ecx + 1]
cmove eax, ecx
jmp 0x4a91c2
mov dword [esi], 0x59
jmp 0x4a91d3
mov dword [esi], 0x19
jmp 0x4a91d3
movzx eax, byte [edi + 1]
test byte [eax + 0x606840], bl
jne case.0x4a9283.50
mov dword [esi], 0x76
jmp 0x4a91d3
cmp ecx, 0x60
ja 0x4a94f5
je case.0x4a919e.39
cmp ecx, 0x3a
ja 0x4a9333
je 0x4a9445
sub eax, 0x32
cmp eax, 7
ja case.default.0x4a9283
movzx eax, byte [eax + 0x4a95ec]
jmp dword [eax*4 + 0x4a95e8]
xor edx, edx
mov dword [esi], 0x81
test byte [ecx + 0x606840], bl
je 0x4a92a7
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x606840], bl
jne 0x4a929a
cmp byte [edx + edi], 0x2e
jne 0x4a92c0
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x606840], bl
jne 0x4a92ad
mov dword [esi], 0x82
mov al, byte [edx + edi]
cmp al, 0x65
je 0x4a92cb
cmp al, 0x45
jne 0x4a9309
mov cl, byte [edx + edi + 1]
movzx eax, cl
test byte [eax + 0x606840], bl
jne 0x4a92f1
cmp cl, 0x2b
je 0x4a92e4
cmp cl, 0x2d
jne 0x4a9309
movzx eax, byte [edx + edi + 2]
test byte [eax + 0x606840], bl
je 0x4a9309
add edx, 2
jmp 0x4a92f7
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x606840], bl
jne 0x4a92f6
mov dword [esi], 0x82
movzx eax, byte [edx + edi]
test byte [eax + 0x606840], 0x46
je 0x4a9111
inc edx
mov dword [esi], 0x94
movzx ecx, byte [edx + edi]
test byte [ecx + 0x606840], 0x46
jne 0x4a931a
jmp 0x4a9111
cmp ecx, 0x3f
ja 0x4a9409
je 0x4a93db
sub eax, 0x3b
je 0x4a93d1
sub eax, 1
je 0x4a9399
sub eax, 1
je 0x4a9384
sub eax, 1
jne case.default.0x4a9283
mov al, byte [edi + 1]
cmp al, 0x3d
jne 0x4a936d
mov dword [esi], 0x50
jmp 0x4a93a6
cmp al, 0x3e
jne 0x4a9379
mov dword [esi], 0x55
jmp 0x4a93a6
mov dword [esi], 0x4d
jmp 0x4a91d3
xor eax, eax
mov dword [esi], 0x4c
cmp byte [edi + 1], 0x3d
sete al
inc eax
jmp 0x4a95ba
mov al, byte [edi + 1]
cmp al, 0x3d
jne 0x4a93ae
mov dword [esi], 0x4e
push 2
pop eax
jmp 0x4a95ba
cmp al, 0x3e
jne 0x4a93ba
mov dword [esi], 0x4b
jmp 0x4a93a6
cmp al, 0x3c
jne 0x4a93c6
mov dword [esi], 0x54
jmp 0x4a93a6
mov dword [esi], 0x4f
jmp 0x4a91d3
xor edx, edx
inc edx
mov dword [esi], edx
jmp 0x4a9111
movzx eax, byte [edi + 1]
xor edx, edx
push 4
pop ebx
inc edx
mov dword [esi], 0x85
test byte [eax + 0x606840], bl
je 0x4a9111
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x606840], bl
jne 0x4a93f7
jmp 0x4a9111
cmp ecx, 0x40
je 0x4a9445
cmp ecx, 0x58
je 0x4a952c
cmp ecx, 0x5b
jne case.default.0x4a9283
xor eax, eax
inc eax
mov dl, byte [eax + edi]
test dl, dl
je 0x4a9430
inc eax
cmp dl, 0x5d
jne 0x4a9423
push 0x1a
cmp dl, 0x5d
mov ecx, 0x94
pop edi
cmove ecx, edi
mov dword [esi], ecx
jmp 0x4a95ba
movzx eax, byte [edi + 1]
xor ecx, ecx
mov dword [esi], 0x85
test eax, eax
je 0x4a9487
test byte [eax + 0x606840], 0x46
je 0x4a9461
inc ecx
jmp 0x4a9476
cmp eax, 0x28
jne 0x4a946a
test ecx, ecx
jg 0x4a9492
cmp eax, 0x3a
jne 0x4a947f
cmp byte [edi + edx + 1], al
jne 0x4a947f
inc edx
inc edx
movzx eax, byte [edx + edi]
test eax, eax
jne 0x4a9455
test ecx, ecx
jne 0x4a9111
mov dword [esi], 0x94
jmp 0x4a9111
inc edx
mov cl, byte [edx + edi]
movzx eax, cl
test cl, cl
je 0x4a94ab
test byte [eax + 0x606840], 1
jne 0x4a94ab
cmp eax, 0x29
jne 0x4a9492
cmp cl, 0x29
jne 0x4a9487
inc edx
jmp 0x4a9111
movzx ebx, byte [edi + 1]
xor edx, edx
inc edx
jmp 0x4a94d2
cmp ebx, ecx
jne 0x4a94cd
movzx eax, byte [edi + edx + 1]
cmp eax, ecx
jne 0x4a94d6
inc edx
inc edx
movzx ebx, byte [edx + edi]
test ebx, ebx
jne 0x4a94bf
cmp ebx, 0x27
jne 0x4a94e9
mov dword [esi], 0x5e
lea eax, [edx + 1]
jmp 0x4a95ba
test ebx, ebx
je 0x4a9487
mov dword [esi], 0x1a
jmp 0x4a94e1
sub eax, 0x78
je 0x4a952c
sub eax, 4
je 0x4a9510
dec eax
sub eax, 1
jne case.default.0x4a9283
mov dword [esi], 0x5d
jmp 0x4a91d3
cmp byte [edi + 1], 0x7c
je 0x4a9521
mov dword [esi], 0x53
jmp 0x4a91d3
mov dword [esi], 0x5b
jmp 0x4a93a6
cmp byte [edi + 1], 0x27
jne case.default.0x4a9283
movzx eax, byte [edi + 2]
push 2
mov dword [esi], 0x83
pop ecx
jmp 0x4a9546
inc ecx
movzx eax, byte [ecx + edi]
test byte [eax + 0x606840], 8
jne 0x4a9541
mov al, byte [ecx + edi]
cmp al, 0x27
jne 0x4a955b
test cl, 1
je 0x4a956f
mov dword [esi], 0x94
jmp 0x4a956b
cmp al, 0x27
je 0x4a956f
inc ecx
mov al, byte [ecx + edi]
test al, al
jne 0x4a9563
cmp byte [ecx + edi], 0
lea eax, [ecx + 1]
cmove eax, ecx
jmp 0x4a95ba
test byte [ecx + 0x606840], 0x46
jne 0x4a958f
mov dword [esi], 0x94
jmp 0x4a91d3
movzx eax, byte [edi + 1]
xor ebx, ebx
inc ebx
test byte [eax + 0x606840], 0x46
je 0x4a95ad
inc ebx
movzx ecx, byte [ebx + edi]
test byte [ecx + 0x606840], 0x46
jne 0x4a959f
mov edx, ebx
mov ecx, edi
call fcn.004a9018
mov dword [esi], eax
mov eax, ebx
pop edi
pop esi
pop ebx
ret