Function at 0x4ac152
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 0x4ac308
je case.0x4ac339.50
cmp ecx, 0x26
ja 0x4ac248
je 0x4ac240
cmp ecx, 0x21
ja 0x4ac1e3
je 0x4ac1ce
sub eax, 9
je 0x4ac1a4
sub eax, edx
je 0x4ac1a4
dec eax
sub eax, edx
je 0x4ac1a4
sub eax, edx
je 0x4ac1a4
sub eax, 0x13
jne case.default.0x4ac339
movzx eax, byte [edi + 1]
xor edx, edx
inc edx
test byte [eax + 0x5fe3e0], dl
je 0x4ac1c1
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5fe3e0], 1
jne 0x4ac1b3
mov dword [esi], 0x95
mov eax, edx
jmp 0x4ac670
cmp byte [edi + 1], 0x3d
je 0x4ac468
mov dword [esi], 0x94
jmp 0x4ac45c
sub eax, 0x22
je case.0x4ac254.39
sub eax, 1
je 0x4ac20b
sub eax, 1
je 0x4ac4fb
sub eax, 1
jne case.default.0x4ac339
mov dword [esi], 0x5a
jmp 0x4ac289
movzx eax, byte [edi + 1]
push 4
pop ebx
test byte [eax + 0x5fe3e0], bl
je 0x4ac4fb
mov eax, edx
inc eax
movzx ecx, byte [eax + edi]
test byte [ecx + 0x5fe3e0], bl
jne 0x4ac220
cmp eax, edx
jle 0x4ac4fb
mov dword [esi], 0x84
jmp 0x4ac670
mov dword [esi], 0x52
jmp 0x4ac289
sub eax, 0x27
cmp eax, 9
ja case.default.0x4ac339
jmp dword [eax*4 + 0x4ac676]
cmp byte [edi + 1], 0x2d
jne 0x4ac283
movzx ecx, byte [edi + 2]
push 2
pop eax
jmp 0x4ac274
cmp ecx, 0xa
je 0x4ac278
inc eax
movzx ecx, byte [eax + edi]
test ecx, ecx
jne 0x4ac26a
mov dword [esi], 0x95
jmp 0x4ac670
mov dword [esi], 0x57
xor eax, eax
inc eax
jmp 0x4ac670
mov dword [esi], 0x16
jmp 0x4ac289
mov dword [esi], 0x17
jmp 0x4ac289
mov dword [esi], 0x56
jmp 0x4ac289
mov dword [esi], 0x58
jmp 0x4ac289
cmp byte [edi + 1], 0x2a
jne 0x4ac2e4
mov al, byte [edi + 2]
test al, al
je 0x4ac2e4
push 3
pop ecx
movzx edx, al
cmp edx, 0x2a
jne 0x4ac2cf
cmp byte [ecx + edi], 0x2f
je 0x4ac2da
movzx edx, byte [ecx + edi]
test edx, edx
je 0x4ac2da
inc ecx
jmp 0x4ac2c4
test edx, edx
lea eax, [ecx + 1]
cmove eax, ecx
jmp 0x4ac278
mov dword [esi], 0x59
jmp 0x4ac289
mov dword [esi], 0x19
jmp 0x4ac289
movzx eax, byte [edi + 1]
test byte [eax + 0x5fe3e0], bl
jne case.0x4ac339.50
mov dword [esi], 0x76
jmp 0x4ac289
cmp ecx, 0x60
ja 0x4ac5ab
je case.0x4ac254.39
cmp ecx, 0x3a
ja 0x4ac3e9
je 0x4ac4fb
sub eax, 0x32
cmp eax, 7
ja case.default.0x4ac339
movzx eax, byte [eax + 0x4ac6a2]
jmp dword [eax*4 + 0x4ac69e]
xor edx, edx
mov dword [esi], 0x81
test byte [ecx + 0x5fe3e0], bl
je 0x4ac35d
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5fe3e0], bl
jne 0x4ac350
cmp byte [edx + edi], 0x2e
jne 0x4ac376
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5fe3e0], bl
jne 0x4ac363
mov dword [esi], 0x82
mov al, byte [edx + edi]
cmp al, 0x65
je 0x4ac381
cmp al, 0x45
jne 0x4ac3bf
mov cl, byte [edx + edi + 1]
movzx eax, cl
test byte [eax + 0x5fe3e0], bl
jne 0x4ac3a7
cmp cl, 0x2b
je 0x4ac39a
cmp cl, 0x2d
jne 0x4ac3bf
movzx eax, byte [edx + edi + 2]
test byte [eax + 0x5fe3e0], bl
je 0x4ac3bf
add edx, 2
jmp 0x4ac3ad
inc edx
movzx eax, byte [edx + edi]
test byte [eax + 0x5fe3e0], bl
jne 0x4ac3ac
mov dword [esi], 0x82
movzx eax, byte [edx + edi]
test byte [eax + 0x5fe3e0], 0x46
je 0x4ac1c7
inc edx
mov dword [esi], 0x94
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5fe3e0], 0x46
jne 0x4ac3d0
jmp 0x4ac1c7
cmp ecx, 0x3f
ja 0x4ac4bf
je 0x4ac491
sub eax, 0x3b
je 0x4ac487
sub eax, 1
je 0x4ac44f
sub eax, 1
je 0x4ac43a
sub eax, 1
jne case.default.0x4ac339
mov al, byte [edi + 1]
cmp al, 0x3d
jne 0x4ac423
mov dword [esi], 0x50
jmp 0x4ac45c
cmp al, 0x3e
jne 0x4ac42f
mov dword [esi], 0x55
jmp 0x4ac45c
mov dword [esi], 0x4d
jmp 0x4ac289
xor eax, eax
mov dword [esi], 0x4c
cmp byte [edi + 1], 0x3d
sete al
inc eax
jmp 0x4ac670
mov al, byte [edi + 1]
cmp al, 0x3d
jne 0x4ac464
mov dword [esi], 0x4e
push 2
pop eax
jmp 0x4ac670
cmp al, 0x3e
jne 0x4ac470
mov dword [esi], 0x4b
jmp 0x4ac45c
cmp al, 0x3c
jne 0x4ac47c
mov dword [esi], 0x54
jmp 0x4ac45c
mov dword [esi], 0x4f
jmp 0x4ac289
xor edx, edx
inc edx
mov dword [esi], edx
jmp 0x4ac1c7
movzx eax, byte [edi + 1]
xor edx, edx
push 4
pop ebx
inc edx
mov dword [esi], 0x85
test byte [eax + 0x5fe3e0], bl
je 0x4ac1c7
inc edx
movzx ecx, byte [edx + edi]
test byte [ecx + 0x5fe3e0], bl
jne 0x4ac4ad
jmp 0x4ac1c7
cmp ecx, 0x40
je 0x4ac4fb
cmp ecx, 0x58
je 0x4ac5e2
cmp ecx, 0x5b
jne case.default.0x4ac339
xor eax, eax
inc eax
mov dl, byte [eax + edi]
test dl, dl
je 0x4ac4e6
inc eax
cmp dl, 0x5d
jne 0x4ac4d9
push 0x1a
cmp dl, 0x5d
mov ecx, 0x94
pop edi
cmove ecx, edi
mov dword [esi], ecx
jmp 0x4ac670
movzx eax, byte [edi + 1]
xor ecx, ecx
mov dword [esi], 0x85
test eax, eax
je 0x4ac53d
test byte [eax + 0x5fe3e0], 0x46
je 0x4ac517
inc ecx
jmp 0x4ac52c
cmp eax, 0x28
jne 0x4ac520
test ecx, ecx
jg 0x4ac548
cmp eax, 0x3a
jne 0x4ac535
cmp byte [edi + edx + 1], al
jne 0x4ac535
inc edx
inc edx
movzx eax, byte [edx + edi]
test eax, eax
jne 0x4ac50b
test ecx, ecx
jne 0x4ac1c7
mov dword [esi], 0x94
jmp 0x4ac1c7
inc edx
mov cl, byte [edx + edi]
movzx eax, cl
test cl, cl
je 0x4ac561
test byte [eax + 0x5fe3e0], 1
jne 0x4ac561
cmp eax, 0x29
jne 0x4ac548
cmp cl, 0x29
jne 0x4ac53d
inc edx
jmp 0x4ac1c7
movzx ebx, byte [edi + 1]
xor edx, edx
inc edx
jmp 0x4ac588
cmp ebx, ecx
jne 0x4ac583
movzx eax, byte [edi + edx + 1]
cmp eax, ecx
jne 0x4ac58c
inc edx
inc edx
movzx ebx, byte [edx + edi]
test ebx, ebx
jne 0x4ac575
cmp ebx, 0x27
jne 0x4ac59f
mov dword [esi], 0x5e
lea eax, [edx + 1]
jmp 0x4ac670
test ebx, ebx
je 0x4ac53d
mov dword [esi], 0x1a
jmp 0x4ac597
sub eax, 0x78
je 0x4ac5e2
sub eax, 4
je 0x4ac5c6
dec eax
sub eax, 1
jne case.default.0x4ac339
mov dword [esi], 0x5d
jmp 0x4ac289
cmp byte [edi + 1], 0x7c
je 0x4ac5d7
mov dword [esi], 0x53
jmp 0x4ac289
mov dword [esi], 0x5b
jmp 0x4ac45c
cmp byte [edi + 1], 0x27
jne case.default.0x4ac339
movzx eax, byte [edi + 2]
push 2
mov dword [esi], 0x83
pop ecx
jmp 0x4ac5fc
inc ecx
movzx eax, byte [ecx + edi]
test byte [eax + 0x5fe3e0], 8
jne 0x4ac5f7
mov al, byte [ecx + edi]
cmp al, 0x27
jne 0x4ac611
test cl, 1
je 0x4ac625
mov dword [esi], 0x94
jmp 0x4ac621
cmp al, 0x27
je 0x4ac625
inc ecx
mov al, byte [ecx + edi]
test al, al
jne 0x4ac619
cmp byte [ecx + edi], 0
lea eax, [ecx + 1]
cmove eax, ecx
jmp 0x4ac670
test byte [ecx + 0x5fe3e0], 0x46
jne 0x4ac645
mov dword [esi], 0x94
jmp 0x4ac289
movzx eax, byte [edi + 1]
xor ebx, ebx
inc ebx
test byte [eax + 0x5fe3e0], 0x46
je 0x4ac663
inc ebx
movzx ecx, byte [ebx + edi]
test byte [ecx + 0x5fe3e0], 0x46
jne 0x4ac655
mov edx, ebx
mov ecx, edi
call fcn.004ac0ce
mov dword [esi], eax
mov eax, ebx
pop edi
pop esi
pop ebx
ret