Function at 0x4a9345
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 0x4a94fb
je case.0x4a952c.50
cmp ecx, 0x26
ja 0x4a943b
je 0x4a9433
cmp ecx, 0x21
ja 0x4a93d6
je 0x4a93c1
sub eax, 9
je 0x4a9397
sub eax, edx
je 0x4a9397
dec eax
sub eax, edx
je 0x4a9397
sub eax, edx
je 0x4a9397
sub eax, 0x13
jne case.default.0x4a952c
movzx eax, byte [edi + 1]
xor edx, edx
inc edx
test byte [eax + 0x5f2ef0], dl
je 0x4a93b4
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5f2ef0], 1
jne 0x4a93a6
mov dword [esi], 0x95
mov eax, edx
jmp 0x4a9863
cmp byte [edi + 1], 0x3d
je 0x4a965b
mov dword [esi], 0x94
jmp 0x4a964f
sub eax, 0x22
je case.0x4a9447.39
sub eax, 1
je 0x4a93fe
sub eax, 1
je 0x4a96ee
sub eax, 1
jne case.default.0x4a952c
mov dword [esi], 0x5a
jmp 0x4a947c
movzx eax, byte [edi + 1]
push 4
pop ebx
test byte [eax + 0x5f2ef0], bl
je 0x4a96ee
mov eax, edx
inc eax
movzx ecx, byte [eax + edi]
test byte [ecx + 0x5f2ef0], bl
jne 0x4a9413
cmp eax, edx
jle 0x4a96ee
mov dword [esi], 0x84
jmp 0x4a9863
mov dword [esi], 0x52
jmp 0x4a947c
sub eax, 0x27
cmp eax, 9
ja case.default.0x4a952c
jmp dword [eax*4 + 0x4a9869]
cmp byte [edi + 1], 0x2d
jne 0x4a9476
movzx ecx, byte [edi + 2]
push 2
pop eax
jmp 0x4a9467
cmp ecx, 0xa
je 0x4a946b
inc eax
movzx ecx, byte [eax + edi]
test ecx, ecx
jne 0x4a945d
mov dword [esi], 0x95
jmp 0x4a9863
mov dword [esi], 0x57
xor eax, eax
inc eax
jmp 0x4a9863
mov dword [esi], 0x16
jmp 0x4a947c
mov dword [esi], 0x17
jmp 0x4a947c
mov dword [esi], 0x56
jmp 0x4a947c
mov dword [esi], 0x58
jmp 0x4a947c
cmp byte [edi + 1], 0x2a
jne 0x4a94d7
mov al, byte [edi + 2]
test al, al
je 0x4a94d7
push 3
pop ecx
movzx edx, al
cmp edx, 0x2a
jne 0x4a94c2
cmp byte [ecx + edi], 0x2f
je 0x4a94cd
movzx edx, byte [ecx + edi]
test edx, edx
je 0x4a94cd
inc ecx
jmp 0x4a94b7
test edx, edx
lea eax, [ecx + 1]
cmove eax, ecx
jmp 0x4a946b
mov dword [esi], 0x59
jmp 0x4a947c
mov dword [esi], 0x19
jmp 0x4a947c
movzx eax, byte [edi + 1]
test byte [eax + 0x5f2ef0], bl
jne case.0x4a952c.50
mov dword [esi], 0x76
jmp 0x4a947c
cmp ecx, 0x60
ja 0x4a979e
je case.0x4a9447.39
cmp ecx, 0x3a
ja 0x4a95dc
je 0x4a96ee
sub eax, 0x32
cmp eax, 7
ja case.default.0x4a952c
movzx eax, byte [eax + 0x4a9895]
jmp dword [eax*4 + 0x4a9891]
xor edx, edx
mov dword [esi], 0x81
test byte [ecx + 0x5f2ef0], bl
je 0x4a9550
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5f2ef0], bl
jne 0x4a9543
cmp byte [edx + edi], 0x2e
jne 0x4a9569
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5f2ef0], bl
jne 0x4a9556
mov dword [esi], 0x82
mov al, byte [edx + edi]
cmp al, 0x65
je 0x4a9574
cmp al, 0x45
jne 0x4a95b2
mov cl, byte [edx + edi + 1]
movzx eax, cl
test byte [eax + 0x5f2ef0], bl
jne 0x4a959a
cmp cl, 0x2b
je 0x4a958d
cmp cl, 0x2d
jne 0x4a95b2
movzx eax, byte [edx + edi + 2]
test byte [eax + 0x5f2ef0], bl
je 0x4a95b2
add edx, 2
jmp 0x4a95a0
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5f2ef0], bl
jne 0x4a959f
mov dword [esi], 0x82
movzx eax, byte [edx + edi]
test byte [eax + 0x5f2ef0], 0x46
je 0x4a93ba
inc edx
mov dword [esi], 0x94
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5f2ef0], 0x46
jne 0x4a95c3
jmp 0x4a93ba
cmp ecx, 0x3f
ja 0x4a96b2
je 0x4a9684
sub eax, 0x3b
je 0x4a967a
sub eax, 1
je 0x4a9642
sub eax, 1
je 0x4a962d
sub eax, 1
jne case.default.0x4a952c
mov al, byte [edi + 1]
cmp al, 0x3d
jne 0x4a9616
mov dword [esi], 0x50
jmp 0x4a964f
cmp al, 0x3e
jne 0x4a9622
mov dword [esi], 0x55
jmp 0x4a964f
mov dword [esi], 0x4d
jmp 0x4a947c
xor eax, eax
mov dword [esi], 0x4c
cmp byte [edi + 1], 0x3d
sete al
inc eax
jmp 0x4a9863
mov al, byte [edi + 1]
cmp al, 0x3d
jne 0x4a9657
mov dword [esi], 0x4e
push 2
pop eax
jmp 0x4a9863
cmp al, 0x3e
jne 0x4a9663
mov dword [esi], 0x4b
jmp 0x4a964f
cmp al, 0x3c
jne 0x4a966f
mov dword [esi], 0x54
jmp 0x4a964f
mov dword [esi], 0x4f
jmp 0x4a947c
xor edx, edx
inc edx
mov dword [esi], edx
jmp 0x4a93ba
movzx eax, byte [edi + 1]
xor edx, edx
push 4
pop ebx
inc edx
mov dword [esi], 0x85
test byte [eax + 0x5f2ef0], bl
je 0x4a93ba
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5f2ef0], bl
jne 0x4a96a0
jmp 0x4a93ba
cmp ecx, 0x40
je 0x4a96ee
cmp ecx, 0x58
je 0x4a97d5
cmp ecx, 0x5b
jne case.default.0x4a952c
xor eax, eax
inc eax
mov dl, byte [eax + edi]
test dl, dl
je 0x4a96d9
inc eax
cmp dl, 0x5d
jne 0x4a96cc
push 0x1a
cmp dl, 0x5d
mov ecx, 0x94
pop edi
cmove ecx, edi
mov dword [esi], ecx
jmp 0x4a9863
movzx eax, byte [edi + 1]
xor ecx, ecx
mov dword [esi], 0x85
test eax, eax
je 0x4a9730
test byte [eax + 0x5f2ef0], 0x46
je 0x4a970a
inc ecx
jmp 0x4a971f
cmp eax, 0x28
jne 0x4a9713
test ecx, ecx
jg 0x4a973b
cmp eax, 0x3a
jne 0x4a9728
cmp byte [edi + edx + 1], al
jne 0x4a9728
inc edx
inc edx
movzx eax, byte [edx + edi]
test eax, eax
jne 0x4a96fe
test ecx, ecx
jne 0x4a93ba
mov dword [esi], 0x94
jmp 0x4a93ba
inc edx
mov cl, byte [edx + edi]
movzx eax, cl
test cl, cl
je 0x4a9754
test byte [eax + 0x5f2ef0], 1
jne 0x4a9754
cmp eax, 0x29
jne 0x4a973b
cmp cl, 0x29
jne 0x4a9730
inc edx
jmp 0x4a93ba
movzx ebx, byte [edi + 1]
xor edx, edx
inc edx
jmp 0x4a977b
cmp ebx, ecx
jne 0x4a9776
movzx eax, byte [edi + edx + 1]
cmp eax, ecx
jne 0x4a977f
inc edx
inc edx
movzx ebx, byte [edx + edi]
test ebx, ebx
jne 0x4a9768
cmp ebx, 0x27
jne 0x4a9792
mov dword [esi], 0x5e
lea eax, [edx + 1]
jmp 0x4a9863
test ebx, ebx
je 0x4a9730
mov dword [esi], 0x1a
jmp 0x4a978a
sub eax, 0x78
je 0x4a97d5
sub eax, 4
je 0x4a97b9
dec eax
sub eax, 1
jne case.default.0x4a952c
mov dword [esi], 0x5d
jmp 0x4a947c
cmp byte [edi + 1], 0x7c
je 0x4a97ca
mov dword [esi], 0x53
jmp 0x4a947c
mov dword [esi], 0x5b
jmp 0x4a964f
cmp byte [edi + 1], 0x27
jne case.default.0x4a952c
movzx eax, byte [edi + 2]
push 2
mov dword [esi], 0x83
pop ecx
jmp 0x4a97ef
inc ecx
movzx eax, byte [ecx + edi]
test byte [eax + 0x5f2ef0], 8
jne 0x4a97ea
mov al, byte [ecx + edi]
cmp al, 0x27
jne 0x4a9804
test cl, 1
je 0x4a9818
mov dword [esi], 0x94
jmp 0x4a9814
cmp al, 0x27
je 0x4a9818
inc ecx
mov al, byte [ecx + edi]
test al, al
jne 0x4a980c
cmp byte [ecx + edi], 0
lea eax, [ecx + 1]
cmove eax, ecx
jmp 0x4a9863
test byte [ecx + 0x5f2ef0], 0x46
jne 0x4a9838
mov dword [esi], 0x94
jmp 0x4a947c
movzx eax, byte [edi + 1]
xor ebx, ebx
inc ebx
test byte [eax + 0x5f2ef0], 0x46
je 0x4a9856
inc ebx
movzx ecx, byte [ebx + edi]
test byte [ecx + 0x5f2ef0], 0x46
jne 0x4a9848
mov edx, ebx
mov ecx, edi
call fcn.004a92c1
mov dword [esi], eax
mov eax, ebx
pop edi
pop esi
pop ebx
ret