Function at 0x4e8540
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a1b48
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x5f300c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov ecx, 0xf
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x50], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], ecx
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0
xor bl, bl
mov dword [edi], 0
xor bh, bh
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
mov byte [ebp - 0x29], bl
neg eax
mov byte [ebp - 0x2a], bh
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov dword [esi + 0x30], 0
jmp 0x4e85e4
mov bl, byte [ebp - 0x29]
mov edi, dword [ebp - 0x30]
cmp dword [edi], 0
je 0x4e85f1
test bl, bl
jne 0x4e8af6
mov eax, dword [esi + 0x1c]
cmp eax, dword [esi + 8]
jae 0x4e8af6
mov eax, dword [esi + 0x38]
cmp eax, 0x20
je 0x4e8618
cmp eax, 9
je 0x4e8618
cmp eax, 0xd
je 0x4e8618
cmp eax, 0xa
je 0x4e8618
xor bl, bl
jmp 0x4e861a
mov bl, 1
cmp byte [ebp - 0x29], 0
jne 0x4e8665
test bl, bl
je 0x4e8665
mov edi, 1
cmp dword [ebp + 0xc], edi
jle 0x4e8656
mov edi, edi
push edi
mov ecx, esi
call fcn.00480b40
cmp eax, 0x20
je 0x4e864c
cmp eax, 9
je 0x4e864c
cmp eax, 0xd
je 0x4e864c
cmp eax, 0xa
jne 0x4e8652
inc edi
cmp edi, dword [ebp + 0xc]
jl 0x4e8630
test edi, edi
jle 0x4e8662
mov ecx, esi
call fcn.004761d0
sub edi, 1
jne 0x4e8656
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
mov ecx, dword [esi + 0x1c]
sub eax, ecx
add eax, dword [ebp - 0x3c]
mov edx, dword [edi]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
test edx, edx
jne 0x4e8872
test bh, bh
jne 0x4e8872
cmp eax, 4
jne 0x4e8872
mov eax, dword [esi + 0x38]
cmp eax, 0x61
jl 0x4e869e
cmp eax, 0x7a
jle 0x4e86aa
add eax, 0xffffffbf
cmp eax, 0x19
ja 0x4e886f
mov byte [ebp - 0x2a], 0
cmp ecx, dword [esi + 8]
jae 0x4e8844
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 8]
mov dword [esi + 0x30], 0x15
cmp edi, ebx
jae 0x4e878c
mov ecx, edi
mov edx, dword [esi + 0x40]
mov eax, ecx
cmp edx, 0x30
jl 0x4e86f2
cmp edx, 0x39
jle 0x4e8712
mov ecx, eax
cmp edx, 0x61
jl 0x4e86fe
cmp edx, 0x7a
jle 0x4e8712
mov ecx, eax
lea eax, [edx - 0x41]
cmp eax, 0x19
jbe 0x4e8712
cmp edx, 0x5f
je 0x4e8712
cmp edx, 0x2d
jne 0x4e878c
cmp edi, ebx
jae 0x4e8762
mov al, byte [esi + 0x2d]
mov byte [esi + 0x2c], al
test al, al
je 0x4e873f
mov eax, dword [esi]
inc dword [esi + 0x20]
mov edx, dword [esi + 0x20]
mov edi, dword [eax]
mov eax, dword [edi]
mov ecx, dword [eax + 0x18]
lea eax, [edx + 1]
push eax
push edi
call ecx
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x40]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x38]
mov ecx, esi
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x3c]
add eax, edi
mov dword [esi + 0x38], edx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
call fcn.00475fb0
mov edi, dword [esi + 0x1c]
jmp 0x4e877f
mov word [esi + 0x2c], 0x100
mov edi, ecx
mov dword [esi + 0x34], 0x20
mov dword [esi + 0x38], 0x20
mov dword [esi + 0x40], 0x20
mov ebx, dword [esi + 8]
mov ecx, edi
cmp edi, ebx
jb 0x4e86e3
mov ecx, esi
call fcn.004761d0
cmp byte [ebp - 0x2a], 0
je 0x4e879f
cmp dword [esi + 0x38], 0x3e
je 0x4e881b
push str.:sym_
mov ecx, esi
call fcn.00480180
test al, al
je 0x4e8841
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov dword [esi + 0x30], 0xf
mov edi, 4
mov ecx, esi
call fcn.004761d0
sub edi, 1
jne 0x4e87d7
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov ecx, esi
mov dword [esi + 0x30], 0x12
call fcn.004761d0
mov ecx, dword [esi + 0x1c]
mov byte [ebp - 0x2a], 1
cmp ecx, dword [esi + 8]
jb 0x4e86b7
jmp 0x4e8841
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov ecx, esi
mov dword [esi + 0x30], 0x12
call fcn.004761d0
mov edi, dword [ebp - 0x30]
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov eax, dword [ebp - 0x34]
mov bh, 1
mov bl, byte [ebp - 0x29]
mov dword [esi + 0x30], eax
mov byte [ebp - 0x2a], bh
jmp 0x4e85e4
mov eax, dword [ebp + 0x10]
cmp byte [ebp - 0x29], 0
jne 0x4e89db
cmp dword [esi + 0x38], 0x3a
jne 0x4e89db
test edx, edx
jne 0x4e8894
test bh, bh
jne 0x4e89e3
jmp 0x4e889f
jle 0x4e889f
cmp eax, 7
jge 0x4e89db
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov dword [esi + 0x30], 0xf
jmp 0x4e88c0
mov ecx, dword [esi + 0x40]
cmp ecx, 0x30
jl 0x4e88cd
cmp ecx, 0x39
jle 0x4e88e3
cmp ecx, 0x61
jl 0x4e88d7
cmp ecx, 0x7a
jle 0x4e88e3
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x4e897c
mov edx, dword [esi + 0x1c]
cmp edx, dword [esi + 8]
jae 0x4e897c
mov al, byte [esi + 0x2d]
mov byte [esi + 0x2c], al
test al, al
je 0x4e8918
mov eax, dword [esi]
inc dword [esi + 0x20]
mov edx, dword [esi + 0x20]
mov edi, dword [eax]
mov eax, dword [edi]
mov ecx, dword [eax + 0x18]
lea eax, [edx + 1]
push eax
push edi
call ecx
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x3c]
add eax, edx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x1c], eax
mov ecx, esi
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
call fcn.00475fb0
mov dl, byte [esi + 0x38]
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 0x40], dl
cmp ecx, edi
jae 0x4e8964
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmp edi, 0x10
jb 0x4e8957
mov eax, dword [ebp - 0x28]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x4e88c0
push dword [ebp - 0x40]
mov byte [ebp - 0x44], 0
push dword [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x28]
call fcn.0042a1d0
jmp 0x4e88c0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp ecx, edx
jae 0x4e899f
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmp edx, 0x10
jb 0x4e8997
mov eax, dword [ebp - 0x28]
mov word [eax + ecx], 0x20
jmp 0x4e89b1
push 0x20
mov byte [ebp - 0x48], 0
push dword [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x28]
call fcn.0042a1d0
mov ecx, esi
call fcn.004761d0
mov ecx, dword [esi + 0x1c]
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
sbb eax, eax
neg eax
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x30], eax
jmp 0x4e85de
test edx, edx
jne 0x4e8ae6
test bl, bl
jne 0x4e8a36
mov edx, dword [esi + 0x38]
cmp edx, 0x30
jl 0x4e89f8
cmp edx, 0x39
jle 0x4e8ae6
cmp edx, 0x61
jl 0x4e8a06
cmp edx, 0x7a
jle 0x4e8ae6
lea eax, [edx - 0x41]
cmp eax, 0x19
jbe 0x4e8ae6
cmp edx, 0x5f
je 0x4e8ae6
cmp edx, 0x28
je 0x4e8ae6
cmp edx, 0x29
je 0x4e8ae6
cmp edx, 0x27
je 0x4e8ae6
mov edx, dword [esi + 0x38]
cmp edx, 0x30
jl 0x4e8a47
cmp edx, 0x39
jle 0x4e8ae6
cmp edx, 0x61
jl 0x4e8a55
cmp edx, 0x7a
jle 0x4e8ae6
lea eax, [edx - 0x41]
cmp eax, 0x19
jbe 0x4e8ae6
cmp edx, 0x3a
je 0x4e8ae6
cmp dword [esi + 0xc], ecx
push dword [esi + 0x30]
mov ebx, dword [ebp - 0x4c]
sbb eax, eax
neg eax
mov dword [ebp - 0x34], ebx
inc eax
sub ecx, eax
push ecx
mov ecx, dword [esi]
call fcn.00475ef0
cmp dword [ebp + 0x10], 7
mov dword [esi + 0x30], ebx
mov ebx, dword [esi + 0x38]
mov dword [edi], ebx
jge 0x4e8a9e
mov eax, 1
mov word [edi + 0xe], ax
jmp 0x4e8ac1
xor edi, edi
cmp dword [ebp + 0xc], edi
jle 0x4e8ab7
push edi
mov ecx, esi
call fcn.00480b40
cmp eax, ebx
jne 0x4e8ab7
inc edi
cmp edi, dword [ebp + 0xc]
jl 0x4e8aa5
mov ecx, dword [ebp - 0x30]
movzx eax, di
mov word [ecx + 0xe], ax
mov bh, byte [ebp - 0x2a]
mov bl, byte [ebp - 0x29]
movsx edi, ax
test edi, edi
jle 0x4e85e1
mov ecx, esi
call fcn.004761d0
sub edi, 1
jne 0x4e8ad2
mov bh, byte [ebp - 0x2a]
jmp 0x4e85de
cmp byte [ebp - 0x29], 0
jne 0x4e8af6
mov bl, 1
mov byte [ebp - 0x29], bl
jmp 0x4e85e4
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
jb 0x4e8b02
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x50]
push eax
call fcn.00475270
mov esi, dword [edi]
mov ecx, esi
call fcn.004e70a0
mov ecx, eax
test ecx, ecx
jne 0x4e8b3d
cmp esi, 0x30
jl 0x4e8b24
cmp esi, 0x39
jle 0x4e8b3d
cmp esi, 0x61
jl 0x4e8b2e
cmp esi, 0x7a
jle 0x4e8b3d
lea eax, [esi - 0x41]
cmp eax, 0x19
jbe 0x4e8b3d
cmp esi, 0x3a
je 0x4e8b3d
mov ecx, esi
mov edx, dword [ebp - 0x14]
test ecx, ecx
mov dword [edi + 4], ecx
setg bl
mov dword [edi + 8], 0
cmp edx, 0x10
jb 0x4e8b82
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4e8b78
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4e8b78
call dword [0x5ad78c]
push edx
push ecx
call fcn.0059e222
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059df64
mov esp, ebp
pop ebp
ret 0x14