Function at 0x458b4d
Capabilities:
Access peb ldr_data
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword fs:[0x30]
push ebx
push esi
push edi
mov esi, dword [eax + 0xc]
mov edi, edx
mov edx, dword [eax + 0xa4]
xor ebx, ebx
mov dword [ebp - 8], ecx
mov byte [ebp - 1], bl
cmp edx, 2
jae 0x458b83
mov ecx, ebx
lea eax, [edx + ecx]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, 3
jb 0x458b76
mov edx, dword fs:[0x30]
mov esi, dword fs:[0x30]
mov dword [ebp - 0x24], esi
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x44], eax
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x20], eax
cmp eax, 0x1f4
jbe 0x458bba
mov ecx, ebx
mov ebx, eax
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458bab
xor ebx, ebx
mov eax, dword [ebp - 8]
push ebx
push ebx
push ebx
push dword [edi + 0x310]
push edi
call dword [eax + 0x18]
mov ecx, eax
mov dword [ebp - 0x40], ecx
test ecx, ecx
je 0x458fc9
mov eax, dword fs:[0x20]
mov edx, 0x800000
neg eax
sbb eax, eax
xor esi, esi
inc eax
mov dword [ebp - 0x34], eax
mov al, byte [edi + 0x314]
test al, al
cmovne esi, edx
mov edx, dword fs:[0x30]
or esi, 0x80000000
mov dword [ebp - 0x3c], edx
mov edx, dword [edx + 0x64]
mov dword [ebp - 0x20], edx
test al, al
je 0x458c1f
cmp byte [edi + 0x315], 0
mov eax, 0x803000
je 0x458c21
mov eax, ebx
push ebx
or esi, eax
movzx eax, word [edi + 0x208]
push esi
push 3
push ebx
push ebx
push eax
lea eax, [edi + 0x104]
push eax
mov eax, dword [ebp - 8]
push ecx
call dword [eax + 0x24]
mov dword [ebp - 0x38], eax
test eax, eax
je 0x458f2e
lea ecx, [ebp - 0x1c]
mov edx, edi
push ecx
push eax
push esi
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.00458fe9
add esp, 0xc
test al, al
je 0x458ed9
cmp dword [edi + 0x318], ebx
jne 0x458cd0
mov edx, dword fs:[0x30]
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x18], eax
cmp eax, 0x1f4
jbe 0x458c96
mov ecx, ebx
mov ebx, eax
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458c87
xor ebx, ebx
push 0x40
push 0x1000
push dword [edi + 0x31c]
push ebx
call dword [esi + 0x10]
mov dword [edi + 0x318], eax
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xa4]
mov esi, dword [eax + 0xc]
cmp edx, 2
jae 0x458cd0
mov ecx, ebx
lea eax, [edx + ecx]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, 3
jb 0x458cc3
mov edx, dword fs:[0x30]
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x18], eax
cmp eax, 0x1f4
jbe 0x458cf7
mov ecx, ebx
mov ebx, eax
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458ce8
xor ebx, ebx
mov eax, dword fs:[0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x30], eax
cmp dword [edi + 0x318], ebx
je 0x458e88
mov edx, dword fs:[0x30]
mov esi, dword [edx + 8]
cmp byte [esi + 1], 0x5a
je 0x458d31
mov ecx, ebx
mov al, dl
add al, cl
mov byte [ecx + esi], al
inc ecx
cmp ecx, 0xa
jb 0x458d24
mov eax, dword fs:[0x30]
mov dword [ebp - 0x2c], eax
mov eax, dword [eax + 0x64]
mov dword [ebp - 0x18], eax
jmp 0x458e1e
test ecx, ecx
je 0x458d9b
mov eax, dword fs:[0x30]
mov dword [ebp - 0x28], eax
mov eax, dword [eax + 0x64]
mov dword [ebp - 0x10], eax
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xa4]
mov esi, dword [eax + 0xc]
cmp edx, 2
jae 0x458d7b
mov ecx, ebx
lea eax, [edx + ecx]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, 3
jb 0x458d6e
cmp dword [ebp - 0x10], 0x1f4
jbe 0x458d9b
mov edx, dword [ebp - 0x28]
mov ecx, ebx
mov ebx, dword [ebp - 0x10]
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458d8c
xor ebx, ebx
mov ecx, dword [edi + 0x320]
lea eax, [ebp - 0x14]
mov esi, dword [ebp - 0xc]
push eax
mov eax, dword [edi + 0x31c]
sub eax, ecx
mov esi, dword [esi + 0xa4]
push eax
mov eax, dword [edi + 0x318]
add eax, ecx
push eax
mov eax, dword [ebp - 8]
push dword [ebp - 0x1c]
call dword [eax + 0x28]
test eax, eax
je 0x458eb0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x458e68
cmp esi, 2
jae 0x458df9
mov ecx, ebx
lea eax, [esi + ecx]
mov word [edx + ecx*2], ax
inc ecx
cmp ecx, 3
jb 0x458de9
mov eax, dword [ebp - 0x14]
mov edx, dword fs:[0x30]
add dword [edi + 0x320], eax
mov esi, dword [edx + 8]
cmp byte [esi + 1], 0x5a
je 0x458e1e
mov ecx, ebx
mov al, dl
add al, cl
mov byte [ecx + esi], al
inc ecx
cmp ecx, 0xa
jb 0x458e11
mov eax, dword fs:[0x30]
mov ecx, dword fs:[0x24]
neg ecx
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x320]
sbb ecx, ecx
inc ecx
cmp eax, dword [edi + 0x31c]
jb 0x458d45
mov edx, dword fs:[0x30]
mov byte [ebp - 1], 1
mov esi, dword [edx + 8]
cmp byte [esi + 1], 0x5a
je 0x458e68
mov ecx, ebx
mov al, dl
add al, cl
mov byte [ecx + esi], al
inc ecx
cmp ecx, 0xa
jb 0x458e5b
cmp dword [ebp - 0x18], 0x1f4
jbe 0x458e88
mov edx, dword [ebp - 0x2c]
mov ecx, ebx
mov ebx, dword [ebp - 0x18]
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458e79
xor ebx, ebx
mov edi, dword [ebp - 8]
push dword [ebp - 0x1c]
call dword [edi + 0x2c]
mov edx, dword [ebp - 0x30]
cmp byte [edx + 1], 0x5a
je 0x458edb
mov ecx, ebx
mov ebx, dword [ebp - 0x34]
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0xa
jb 0x458e9f
xor ebx, ebx
jmp 0x458edb
mov edx, dword fs:[0x30]
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x28], eax
cmp eax, 0x1f4
jbe 0x458e68
mov ecx, ebx
mov ebx, eax
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458ec8
xor ebx, ebx
jmp 0x458e68
mov edi, esi
mov edx, dword fs:[0x30]
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x34], eax
cmp eax, 0x1f4
jbe 0x458f02
mov ecx, ebx
mov ebx, eax
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458ef3
xor ebx, ebx
mov eax, dword fs:[0x30]
push dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov esi, dword [eax + 8]
call dword [edi + 0x2c]
cmp byte [esi + 1], 0x5a
je 0x458f7d
mov edx, dword [ebp - 0x34]
mov ecx, ebx
mov al, dl
add al, cl
mov byte [ecx + esi], al
inc ecx
cmp ecx, 0xa
jb 0x458f1f
jmp 0x458f7d
cmp dword [ebp - 0x34], 0
je 0x458f7a
mov edx, dword fs:[0x30]
mov edi, dword fs:[0x30]
mov dword [ebp - 0x38], edi
mov esi, dword [edx + 8]
cmp byte [esi + 1], 0x5a
je 0x458f5d
mov ecx, ebx
mov al, dl
add al, cl
mov byte [ecx + esi], al
inc ecx
cmp ecx, 0xa
jb 0x458f50
mov edx, dword [edi + 8]
cmp byte [edx + 1], 0x5a
je 0x458f7a
mov ecx, ebx
mov ebx, dword [ebp - 0x38]
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0xa
jb 0x458f6b
xor ebx, ebx
mov edi, dword [ebp - 8]
cmp dword [ebp - 0x20], 0x1f4
jbe 0x458f9d
mov edx, dword [ebp - 0x3c]
mov ecx, ebx
mov ebx, dword [ebp - 0x20]
mov al, bl
add al, cl
mov byte [ecx + edx], al
inc ecx
cmp ecx, 0x13
jb 0x458f8e
xor ebx, ebx
push dword [ebp - 0x40]
call dword [edi + 0x2c]
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xa4]
mov esi, dword [eax + 0xc]
cmp edx, 2
jae 0x458fc6
mov ecx, ebx
lea eax, [edx + ecx]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, 3
jb 0x458fb9
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
cmp eax, 0x1f4
jbe 0x458fdf
lea ecx, [ebx + eax]
mov byte [ebx + esi], cl
inc ebx
cmp ebx, 0x13
jb 0x458fd3
mov al, byte [ebp - 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret