Function at 0x499837
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x513010]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov ebx, ecx
xor eax, eax
push edi
mov dword [ebp - 0x184], ebx
mov esi, eax
mov edi, ebx
mov dword [ebp - 0x16c], ebx
movzx edx, word [edi]
mov eax, edx
mov ecx, edx
mov dword [ebp - 0x174], eax
call fcn.00499090
test al, al
jne 0x49987c
test dx, dx
jne 0x4998bd
lea edx, [esi - 1]
test edx, edx
jle 0x4998bd
push 0x2e
pop edi
movzx eax, word [ebx + edx*2]
cmp eax, 0x20
je 0x4998b1
cmp ax, di
jne 0x4998b7
movzx ecx, word [ebx + edx*2 - 2]
call fcn.00499090
test al, al
jne 0x4998b7
movzx eax, word [ebx + edx*2 - 2]
cmp ax, di
jne 0x4998b1
cmp edx, 1
je 0x4998b7
dec esi
dec edx
test edx, edx
jg 0x499886
mov edi, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x174]
xor ecx, ecx
mov word [ebx + esi*2], ax
cmp word [edi], cx
je 0x4998da
add edi, 2
inc esi
mov dword [ebp - 0x16c], edi
jmp 0x499861
mov edi, ecx
mov dword [ebp - 0x17c], edi
cmp word [ebx], cx
je 0x4999e6
mov esi, ebx
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x180], 0x23
test edi, edi
je 0x499914
movzx ecx, word [esi - 2]
call fcn.00499090
xor ecx, ecx
test al, al
je 0x4999ca
mov dword [ebp - 0x170], 6
mov ebx, 0x506968
mov edi, dword [ebp - 0x170]
mov byte [ebp - 0x165], cl
mov edx, ecx
mov dword [ebp - 0x16c], ecx
mov ecx, dword [ebx]
mov eax, esi
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x178], esi
movzx ecx, word [ecx + edx*2]
movzx eax, word [eax]
cmp cx, word [ebp - 0x180]
jne 0x4999f5
cmp eax, 0x30
jb 0x499969
cmp eax, 0x39
jbe 0x499a1b
mov al, byte [ebp - 0x165]
xor ecx, ecx
add ebx, 4
sub edi, 1
jne 0x49992f
mov ebx, dword [ebp - 0x184]
mov edi, dword [ebp - 0x17c]
test al, al
je 0x4999ca
lea eax, [edi + 1]
cmp eax, 0x800
jae 0x4999ac
mov eax, 0xffe
sub eax, dword [ebp - 0x174]
push eax
lea eax, [esi + 2]
push esi
push eax
call fcn.004b8db0
add esp, 0xc
push 0x5f
pop eax
push 0x74
lea ecx, [ebp - 0x50]
mov word [esi], ax
call fcn.004964f8
push 0x23
pop eax
push eax
lea ecx, [ebp - 0x50]
call fcn.004964f8
xor ecx, ecx
inc edi
mov dword [ebp - 0x17c], edi
lea eax, [edi + edi]
lea esi, [eax + ebx]
mov dword [ebp - 0x174], eax
cmp word [esi], cx
jne 0x4998fd
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b7879
leave
ret
test cx, cx
je 0x499a3c
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0x170], ecx
movzx ecx, word [ecx + edx*2]
cmp ecx, eax
jne 0x499969
mov eax, dword [ebp - 0x178]
inc edx
mov ecx, dword [ebp - 0x170]
add eax, 2
mov dword [ebp - 0x16c], edx
mov dword [ebp - 0x178], eax
jmp 0x499947
test ax, ax
je 0x499acc
push 0x2e
pop ecx
cmp ax, cx
jne 0x499ab0
cmp byte [0x520326], 0
jne 0x499aa7
lea eax, [ebp - 0x164]
mov dword [ebp - 0x164], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x160], 0xa
ja 0x499a91
jne 0x499a8d
cmp dword [ebp - 0x158], 0x55f0
jb 0x499a8d
call fcn.004ac045
test al, al
je 0x499a91
xor eax, eax
jmp 0x499a93
mov al, 1
mov edx, dword [ebp - 0x16c]
mov byte [0x520327], al
mov byte [0x520326], 1
jmp 0x499aac
mov al, byte [0x520327]
test al, al
je 0x499acc
movzx ecx, word [esi + edx*2]
call fcn.00499090
test al, al
jne 0x499acc
xor ecx, ecx
mov al, cl
mov byte [ebp - 0x165], al
jmp 0x499971
mov al, 1
mov byte [ebp - 0x165], al
jmp 0x49996f