Function at 0x4c39b70
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 0x4c39bc4
cmp al, 0x41
je 0x4c39bc0
cmp al, 0x61
je 0x4c39bc0
cmp al, 0x50
je 0x4c39bc0
cmp al, 0x70
je 0x4c39bc0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4c39ba6
jmp 0x4c39bc4
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 0x4c3a05b
movsx eax, al
cmp eax, 0x61
jl 0x4c39bee
cmp eax, 0x7a
jg 0x4c39bee
add eax, 0xffffffe0
cmp al, 0x46
jne 0x4c39bfd
inc ebp
mov dword [esp + 0x20], edi
mov dword [esp + 0x50], ebp
jmp 0x4c39bd3
cmp al, 0x45
jne 0x4c39c0c
inc ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x50], ebp
jmp 0x4c39bd3
cmp al, 0x4d
je 0x4c39c5d
cmp al, 0x44
je 0x4c39c5d
cmp al, 0x59
je 0x4c39c5d
cmp al, 0x4a
je 0x4c39c5d
cmp al, 0x41
je 0x4c39c5d
cmp al, 0x48
je 0x4c39c5d
cmp al, 0x4e
je 0x4c39c5d
cmp al, 0x53
je 0x4c39c5d
cmp al, 0x49
je 0x4c39c5d
cmp al, 0x55
je 0x4c39c5d
cmp al, 0x50
jne 0x4c39c45
cmp byte [esi + 7], 0xc
jae 0x4c39c5d
inc ebp
mov dword [esp + 0x50], ebp
jmp 0x4c39bd3
cmp ecx, edx
mov byte [esp + 0x13], al
jae 0x4c39c52
mov al, byte [ebp]
mov byte [ecx], al
inc ecx
inc ebp
mov dword [esp + 0x50], ebp
jmp 0x4c39bcf
mov bl, byte [ebp]
cmp bl, 0x61
jl 0x4c39c72
cmp bl, 0x7a
mov dword [esp + 0x28], 0xffffffff
jle 0x4c39c76
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 0x4c39c95
cmp eax, 0x7a
jg 0x4c39c95
add eax, 0xffffffe0
cmp eax, edx
jne 0x4c39ca8
cmp cl, bl
je 0x4c39ca5
mov dword [esp + 0x28], 0
inc edi
jmp 0x4c39c82
cmp edi, 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edi
jle 0x4c39cbf
cmp bl, byte [ebp + 1]
mov byte [esp + 0x4c], 0
jne 0x4c39cc4
mov byte [esp + 0x4c], 0x30
lea eax, [edx - 0x41]
xor ebp, ebp
cmp eax, 0x18
ja case.0x4c39cd9.66
movzx ecx, byte [eax + 0x4c3a09c]
jmp dword [ecx*4 + 0x4c3a06c]
cmp byte [esp + 0x13], 0x3a
jne 0x4c39cf0
movzx ebp, byte [esi + 8]
jmp case.0x4c39cd9.66
cmp edi, 2
jle 0x4c39dbe
mov al, byte [esi + 2]
cmp al, 0xc
jae 0x4c39e53
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4c39da1
cmp edi, 4
movzx edx, al
mov esi, dword [edx*4 + 0x4c7faf8]
jne 0x4c39d4a
cmp al, 6
je 0x4c39d4a
cmp al, 8
je 0x4c39d4a
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c39d30
sub eax, edx
cmp eax, 4
jbe 0x4c39d4a
mov dword [esp + 0x18], 3
mov byte [esp + 0x4c], cl
test esi, esi
je case.0x4c39cd9.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 0x4c39d60
mov ebp, dword [esp + 0x24]
sub eax, edx
cmp eax, ebp
jle 0x4c39fb1
test edi, edi
je 0x4c39fb1
lea eax, [ebp - 1]
test eax, eax
jl 0x4c3a037
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
inc eax
cmp ecx, edx
jae 0x4c39d98
mov byte [ecx], 0x2a
inc ecx
dec eax
jne 0x4c39d91
jmp 0x4c3a033
cmp edi, 3
jne 0x4c39db2
movzx eax, al
mov esi, dword [eax*4 + 0x4c81c24]
jmp 0x4c39d4a
movzx ecx, al
mov esi, dword [ecx*4 + 0x4c81bf0]
jmp 0x4c39d4a
movzx ebp, byte [esi + 2]
inc ebp
jmp case.0x4c39cd9.66
cmp edi, 1
jne 0x4c39dd7
movzx ebp, byte [esi + 3]
inc ebp
jmp case.0x4c39cd9.66
cmp edi, 2
jne 0x4c39de5
movzx ebp, byte [esi + 6]
jmp case.0x4c39cd9.66
mov al, byte [esi + 3]
cmp al, 7
jae 0x4c39e53
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4c39e03
movzx edx, al
mov esi, dword [edx*4 + 0x4c7fad8]
jmp 0x4c39d4a
movzx ecx, al
shl ecx, 2
cmp edi, 3
mov esi, dword [ecx + 0x4c81c58]
je 0x4c39e3c
mov eax, esi
lea edi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c39e20
mov edx, dword [esp + 0x24]
sub eax, edi
cmp edx, eax
je 0x4c39e3c
mov esi, dword [ecx + 0x4c81c78]
jmp 0x4c39d4a
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4c39e41
sub eax, edx
mov dword [esp + 0x18], eax
jmp 0x4c39d4a
mov esi, 0x4c6de08
jmp 0x4c39d52
movzx ebp, word [esi + 4]
inc ebp
jmp case.0x4c39cd9.66
cmp edi, 2
jle 0x4c39e6e
movzx ebp, word [esi]
jmp case.0x4c39cd9.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.04c5b2a2
add esp, 0xc
lea esi, [esp + 0x34]
mov edi, 1
jmp 0x4c39d59
mov eax, dword [esp + 0x2c]
test eax, eax
movzx ebp, byte [esi + 7]
je case.0x4c39cd9.66
cmp ebp, 0xc
jle 0x4c39eaf
sub ebp, 0xc
jmp case.0x4c39cd9.66
test ebp, ebp
jne case.0x4c39cd9.66
mov ebp, 0xc
jmp case.0x4c39cd9.66
mov ecx, dword [esi + 0xc]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x4c39e79
mov ebp, dword [esi + 0xc]
jmp case.0x4c39cd9.66
cmp byte [esi + 7], 0xc
jae 0x4c39eeb
mov esi, 0x4c6dca8
jmp 0x4c39d52
cmp byte [esi + 7], 0xc
jb case.0x4c39cd9.66
mov esi, 0x4c6dca4
jmp 0x4c39d52
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4c39f0e
movzx ebp, byte [esi + 9]
mov dword [esp + 0x30], 1
jmp case.0x4c39cd9.66
cmp edi, 6
mov ecx, dword [esi + 0xc]
jle 0x4c39f21
mov edi, 6
mov dword [esp + 0x18], edi
jmp 0x4c39f46
jge 0x4c39f46
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 0x4c39f30
mov al, byte [esp + 0x4c]
test al, al
jne 0x4c39f8b
test ecx, ecx
jle 0x4c39f8d
mov eax, ecx
cdq
mov esi, 0xa
idiv esi
test edx, edx
jne 0x4c39f86
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 0x4c39f60
mov dword [esp + 0x18], edi
mov byte [esp + 0x4c], 0x30
test ecx, ecx
je case.0x4c39cd9.66
push 0xa
lea edx, [esp + 0x38]
push edx
push ecx
call fcn.04c5b2cc
add esp, 0xc
lea esi, [esp + 0x34]
mov edi, 1
jmp 0x4c39d59
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jle 0x4c39ff8
mov eax, ecx
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
test eax, eax
mov ecx, edi
jle 0x4c3a033
mov edx, dword [esp + 0x28]
sub esi, edi
mov edi, eax
cmp ecx, ebx
jae 0x4c3a02f
test dx, dx
mov al, byte [ecx + esi]
je 0x4c3a02d
cmp al, 0x80
jae 0x4c3a02d
test dx, dx
movzx eax, al
jle 0x4c3a020
cmp eax, 0x61
jl 0x4c3a02d
cmp eax, 0x7a
jg 0x4c3a02d
add eax, 0xffffffe0
jmp 0x4c3a02d
mov dl, byte [esp + 0x4c]
test dl, dl
je 0x4c39fbb
sub ecx, eax
dec ecx
js 0x4c39fbb
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
inc ecx
mov edi, edi
cmp edi, ebx
jae 0x4c3a01a
mov dl, byte [esp + 0x4c]
mov byte [edi], dl
inc edi
dec ecx
jne 0x4c3a010
jmp 0x4c39fc3
cmp eax, 0x41
jl 0x4c3a02d
cmp eax, 0x5a
jg 0x4c3a02d
add eax, 0x20
mov byte [ecx], al
inc ecx
dec edi
jne 0x4c39fd1
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 0x4c39bd3
pop edi
pop esi
mov eax, ecx
mov ecx, dword [esp + 0x40]
pop ebp
sub eax, ecx
pop ebx
add esp, 0x30
ret