Function at 0x10066d60
Capabilities:
Parse pe header

Disassembly:
sub esp, 0x30
movzx edx, word [esp + 0x3c]
push ebx
push ebp
mov ebp, dword [esp + 0x48]
mov al, byte [ebp]
push esi
mov esi, dword [esp + 0x44]
xor ebx, ebx
add edx, esi
test al, al
push edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
mov ecx, ebp
mov edi, 1
je 0x10066db4
cmp al, 0x41
je 0x10066db0
cmp al, 0x61
je 0x10066db0
cmp al, 0x50
je 0x10066db0
cmp al, 0x70
je 0x10066db0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x10066d96
jmp 0x10066db4
mov dword [esp + 0x2c], edi
mov ecx, esi
mov esi, dword [esp + 0x44]
mov byte [esp + 0x13], 0x20
mov dword [esp + 0x14], ecx
mov al, byte [ebp]
test al, al
je 0x1006724b
movsx eax, al
cmp eax, 0x61
jl 0x10066dde
cmp eax, 0x7a
jg 0x10066dde
add eax, 0xffffffe0
cmp al, 0x46
jne 0x10066ded
inc ebp
mov dword [esp + 0x20], edi
mov dword [esp + 0x50], ebp
jmp 0x10066dc3
cmp al, 0x45
jne 0x10066dfc
inc ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x50], ebp
jmp 0x10066dc3
cmp al, 0x4d
je 0x10066e4d
cmp al, 0x44
je 0x10066e4d
cmp al, 0x59
je 0x10066e4d
cmp al, 0x4a
je 0x10066e4d
cmp al, 0x41
je 0x10066e4d
cmp al, 0x48
je 0x10066e4d
cmp al, 0x4e
je 0x10066e4d
cmp al, 0x53
je 0x10066e4d
cmp al, 0x49
je 0x10066e4d
cmp al, 0x55
je 0x10066e4d
cmp al, 0x50
jne 0x10066e35
cmp byte [esi + 7], 0xc
jae 0x10066e4d
inc ebp
mov dword [esp + 0x50], ebp
jmp 0x10066dc3
cmp ecx, edx
mov byte [esp + 0x13], al
jae 0x10066e42
mov al, byte [ebp]
mov byte [ecx], al
inc ecx
inc ebp
mov dword [esp + 0x50], ebp
jmp 0x10066dbf
mov bl, byte [ebp]
cmp bl, 0x61
jl 0x10066e62
cmp bl, 0x7a
mov dword [esp + 0x28], 0xffffffff
jle 0x10066e66
mov dword [esp + 0x28], edi
mov edi, 1
mov dword [esp + 0x24], edi
movsx edx, al
mov cl, byte [edi + ebp]
movsx eax, cl
cmp eax, 0x61
jl 0x10066e85
cmp eax, 0x7a
jg 0x10066e85
add eax, 0xffffffe0
cmp eax, edx
jne 0x10066e98
cmp cl, bl
je 0x10066e95
mov dword [esp + 0x28], 0
inc edi
jmp 0x10066e72
cmp edi, 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edi
jle 0x10066eaf
cmp bl, byte [ebp + 1]
mov byte [esp + 0x4c], 0
jne 0x10066eb4
mov byte [esp + 0x4c], 0x30
lea eax, [edx - 0x41]
xor ebp, ebp
cmp eax, 0x18
ja case.0x10066ec9.66
movzx ecx, byte [eax + 0x1006728c]
jmp dword [ecx*4 + 0x1006725c]
cmp byte [esp + 0x13], 0x3a
jne 0x10066ee0
movzx ebp, byte [esi + 8]
jmp case.0x10066ec9.66
cmp edi, 2
jle 0x10066fae
mov al, byte [esi + 2]
cmp al, 0xc
jae 0x10067043
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x10066f91
cmp edi, 4
movzx edx, al
mov esi, dword [edx*4 + 0x1008bf10]
jne 0x10066f3a
cmp al, 6
je 0x10066f3a
cmp al, 8
je 0x10066f3a
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10066f20
sub eax, edx
cmp eax, 4
jbe 0x10066f3a
mov dword [esp + 0x18], 3
mov byte [esp + 0x4c], cl
test esi, esi
je case.0x10066ec9.66
xor edi, edi
mov byte [esp + 0x4c], 0
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10066f50
mov ebp, dword [esp + 0x24]
sub eax, edx
cmp eax, ebp
jle 0x100671a1
test edi, edi
je 0x100671a1
lea eax, [ebp - 1]
test eax, eax
jl 0x10067227
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
inc eax
cmp ecx, edx
jae 0x10066f88
mov byte [ecx], 0x2a
inc ecx
dec eax
jne 0x10066f81
jmp 0x10067223
cmp edi, 3
jne 0x10066fa2
movzx eax, al
mov esi, dword [eax*4 + 0x1008fa10]
jmp 0x10066f3a
movzx ecx, al
mov esi, dword [ecx*4 + 0x1008f9dc]
jmp 0x10066f3a
movzx ebp, byte [esi + 2]
inc ebp
jmp case.0x10066ec9.66
cmp edi, 1
jne 0x10066fc7
movzx ebp, byte [esi + 3]
inc ebp
jmp case.0x10066ec9.66
cmp edi, 2
jne 0x10066fd5
movzx ebp, byte [esi + 6]
jmp case.0x10066ec9.66
mov al, byte [esi + 3]
cmp al, 7
jae 0x10067043
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x10066ff3
movzx edx, al
mov esi, dword [edx*4 + 0x1008bef0]
jmp 0x10066f3a
movzx ecx, al
shl ecx, 2
cmp edi, 3
mov esi, dword [ecx + 0x1008fa44]
je 0x1006702c
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10067010
mov edx, dword [esp + 0x24]
sub eax, edi
cmp edx, eax
je 0x1006702c
mov esi, dword [ecx + 0x1008fa64]
jmp 0x10066f3a
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10067031
sub eax, edx
mov dword [esp + 0x18], eax
jmp 0x10066f3a
mov esi, 0x10080d3c
jmp 0x10066f42
movzx ebp, word [esi + 4]
inc ebp
jmp case.0x10066ec9.66
cmp edi, 2
jle 0x1006705e
movzx ebp, word [esi]
jmp case.0x10066ec9.66
movzx eax, word [esi]
cdq
mov ecx, 0x64
idiv ecx
mov ebp, edx
push 0xa
lea eax, [esp + 0x38]
push eax
push ebp
call fcn.1006a716
add esp, 0xc
lea esi, [esp + 0x34]
mov edi, 1
jmp 0x10066f49
mov eax, dword [esp + 0x2c]
test eax, eax
movzx ebp, byte [esi + 7]
je case.0x10066ec9.66
cmp ebp, 0xc
jle 0x1006709f
sub ebp, 0xc
jmp case.0x10066ec9.66
test ebp, ebp
jne case.0x10066ec9.66
mov ebp, 0xc
jmp case.0x10066ec9.66
mov ecx, dword [esi + 0xc]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x10067069
mov ebp, dword [esi + 0xc]
jmp case.0x10066ec9.66
cmp byte [esi + 7], 0xc
jae 0x100670db
mov esi, 0x10080bdc
jmp 0x10066f42
cmp byte [esi + 7], 0xc
jb case.0x10066ec9.66
mov esi, 0x10080bd8
jmp 0x10066f42
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x100670fe
movzx ebp, byte [esi + 9]
mov dword [esp + 0x30], 1
jmp case.0x10066ec9.66
cmp edi, 6
mov ecx, dword [esi + 0xc]
jle 0x10067111
mov edi, 6
mov dword [esp + 0x18], edi
jmp 0x10067136
jge 0x10067136
mov esi, 6
sub esi, edi
lea ebx, [ebx]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
dec esi
mov ecx, edx
jne 0x10067120
mov al, byte [esp + 0x4c]
test al, al
jne 0x1006717b
test ecx, ecx
jle 0x1006717d
mov eax, ecx
cdq
mov esi, 0xa
idiv esi
test edx, edx
jne 0x10067176
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, edx
mov eax, ecx
cdq
mov esi, 0xa
idiv esi
dec edi
test edx, edx
je 0x10067150
mov dword [esp + 0x18], edi
mov byte [esp + 0x4c], 0x30
test ecx, ecx
je case.0x10066ec9.66
push 0xa
lea edx, [esp + 0x38]
push edx
push ecx
call fcn.1006a740
add esp, 0xc
lea esi, [esp + 0x34]
mov edi, 1
jmp 0x10066f49
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jle 0x100671e8
mov eax, ecx
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
test eax, eax
mov ecx, edi
jle 0x10067223
mov edx, dword [esp + 0x28]
sub esi, edi
mov edi, eax
cmp ecx, ebx
jae 0x1006721f
test dx, dx
mov al, byte [ecx + esi]
je 0x1006721d
cmp al, 0x80
jae 0x1006721d
test dx, dx
movzx eax, al
jle 0x10067210
cmp eax, 0x61
jl 0x1006721d
cmp eax, 0x7a
jg 0x1006721d
add eax, 0xffffffe0
jmp 0x1006721d
mov dl, byte [esp + 0x4c]
test dl, dl
je 0x100671ab
sub ecx, eax
dec ecx
js 0x100671ab
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
inc ecx
mov edi, edi
cmp edi, ebx
jae 0x1006720a
mov dl, byte [esp + 0x4c]
mov byte [edi], dl
inc edi
dec ecx
jne 0x10067200
jmp 0x100671b3
cmp eax, 0x41
jl 0x1006721d
cmp eax, 0x5a
jg 0x1006721d
add eax, 0x20
mov byte [ecx], al
inc ecx
dec edi
jne 0x100671c1
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
add eax, ebp
mov dword [esp + 0x50], eax
mov ebp, eax
mov edi, 1
xor ebx, ebx
jmp 0x10066dc3
pop edi
pop esi
mov eax, ecx
mov ecx, dword [esp + 0x40]
pop ebp
sub eax, ecx
pop ebx
add esp, 0x30
ret