Function at 0x439dc0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x51ba00
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x574a28]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x574a28]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x90]
mov edi, dword [esp + 0x98]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa4]
push eax
mov dword [esp + 0x3c], ecx
call fcn.00421520
add esp, 4
mov esi, eax
lea edx, [esp + 0x60]
push edx
mov ecx, esi
call fcn.00420460
xor ebx, ebx
mov dword [esp + 0x88], ebx
cmp dword [esp + 0x74], ebx
jne 0x439e4c
mov dword [esp + 0x3c], ebx
jmp 0x439e5c
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
movzx eax, ax
mov dword [esp + 0x3c], eax
add ebp, 8
push ebp
lea ecx, [esp + 0x24]
push ecx
push 1
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x38]
push eax
mov byte [esp + 0x2c], 0x30
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x48], ebp
call fcn.004f7b33
mov ecx, dword [esp + 0x44]
add esp, 0x14
mov dword [esp + 0x24], ecx
cmp byte [edi + 4], bl
jne 0x439e9e
mov ecx, edi
call fcn.0043b710
mov esi, dword [esp + 0x38]
cmp byte [esi + 4], bl
jne 0x439eae
mov ecx, esi
call fcn.0043b710
cmp dword [edi], ebx
jne 0x439ebc
cmp dword [esi], ebx
je 0x439f5c
jmp 0x439ec4
cmp dword [esi], ebx
jne 0x439f5c
cmp byte [edi + 4], bl
jne 0x439ed0
mov ecx, edi
call fcn.0043b710
movzx esi, word [edi + 6]
push ebp
lea edx, [esp + 0x30]
push edx
push 1
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x2c], 0x2b
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], ebx
call fcn.004f7b33
add esp, 0x14
cmp si, word [esp + 0x20]
jne 0x439f0b
mov eax, dword [esp + 0x30]
mov byte [eax], 0x2b
jmp 0x439f50
cmp byte [edi + 4], bl
jne 0x439f17
mov ecx, edi
call fcn.0043b710
movzx esi, word [edi + 6]
push ebp
lea edx, [esp + 0x30]
push edx
push 1
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x2c], 0x2d
mov dword [esp + 0x34], ebx
mov dword [esp + 0x40], ebx
call fcn.004f7b33
add esp, 0x14
cmp si, word [esp + 0x20]
jne 0x439f5c
mov eax, dword [esp + 0x30]
mov byte [eax], 0x2d
inc eax
mov ecx, edi
mov dword [esp + 0x24], eax
call fcn.0043b6b0
mov eax, dword [esp + 0xa0]
and eax, 0xe00
cmp eax, 0x400
jne 0x439f7a
mov ebp, 8
mov dword [esp + 0x20], ebp
jmp 0x439f99
cmp eax, 0x800
jne 0x439f8c
mov ebp, 0x10
mov dword [esp + 0x20], ebp
jmp 0x439f99
neg eax
sbb eax, eax
and eax, 0xa
mov ebp, eax
mov dword [esp + 0x20], eax
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], bl
cmp byte [edi + 4], bl
jne 0x439fad
mov ecx, edi
call fcn.0043b710
mov esi, dword [esp + 0x38]
cmp byte [esi + 4], bl
jne 0x439fbd
mov ecx, esi
call fcn.0043b710
cmp dword [edi], ebx
jne 0x439fec
cmp dword [esi], ebx
jne 0x439ff0
cmp ebp, ebx
je 0x43a0c4
cmp ebp, 0xa
je 0x43a0c4
sub ebp, 8
neg ebp
sbb ebp, ebp
and ebp, 0xe
add ebp, 8
mov dword [esp + 0x28], ebp
jmp 0x43a0cc
cmp dword [esi], ebx
jne 0x439fc5
cmp byte [edi + 4], bl
jne 0x439ffc
mov ecx, edi
call fcn.0043b710
movzx eax, word [edi + 6]
cmp ax, word [esp + 0x28]
jne 0x439fc5
mov ecx, edi
mov byte [esp + 0x1e], 1
call fcn.0043b6b0
push esi
push edi
call fcn.0043c040
add esp, 8
test al, al
je 0x43a0ae
cmp byte [edi + 4], bl
jne 0x43a031
mov ecx, edi
call fcn.0043b710
mov edx, dword [esp + 0x34]
movzx esi, word [edi + 6]
push edx
lea eax, [esp + 0x30]
push eax
push 1
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x38]
push edx
mov byte [esp + 0x2c], 0x78
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
call fcn.004f7b33
add esp, 0x14
cmp si, word [esp + 0x28]
je 0x43a08c
cmp byte [edi + 4], bl
jne 0x43a073
mov ecx, edi
call fcn.0043b710
mov eax, dword [esp + 0x34]
movzx esi, word [edi + 6]
push eax
push ebx
push 0x58
call fcn.00417520
add esp, 0xc
cmp si, ax
jne 0x43a0ae
cmp ebp, ebx
je 0x43a095
cmp ebp, 0x10
jne 0x43a0ae
mov ebp, 0x10
mov ecx, edi
mov dword [esp + 0x20], ebp
mov byte [esp + 0x1e], bl
call fcn.0043b6b0
jmp 0x439fd6
cmp ebp, ebx
jne 0x439fcd
mov ebp, 8
mov dword [esp + 0x20], ebp
jmp 0x439fd6
mov dword [esp + 0x28], 0xa
mov cl, byte [esp + 0x1e]
mov dword [esp + 0x5c], 0xf
mov byte [esp + 0x48], cl
mov dword [esp + 0x58], 1
mov byte [esp + 0x49], bl
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
xor ebp, ebp
add edx, 0x1f
mov byte [esp + 0x88], 1
mov dword [esp + 0x40], edx
cmp byte [edi + 4], bl
jne 0x43a144
mov ecx, dword [edi]
cmp ecx, ebx
je 0x43a13e
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x43a121
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x43a121
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x43a12b
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x43a13e
mov word [edi + 6], ax
jmp 0x43a140
mov dword [edi], ebx
mov byte [edi + 4], 1
cmp byte [esi + 4], bl
jne 0x43a187
mov ecx, dword [esi]
cmp ecx, ebx
je 0x43a181
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x43a164
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x43a164
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x43a16e
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x43a181
mov word [esi + 6], ax
jmp 0x43a183
mov dword [esi], ebx
mov byte [esi + 4], 1
mov ecx, dword [edi]
cmp ecx, ebx
jne 0x43a1c2
cmp dword [esi], ebx
jne 0x43a1c6
cmp ebp, ebx
je 0x43a358
cmp ebp, dword [esp + 0x58]
jbe 0x43a1a4
call fcn.004cee93
cmp dword [esp + 0x5c], 0x10
mov eax, dword [esp + 0x48]
jae 0x43a1b3
lea eax, [esp + 0x48]
cmp byte [eax + ebp], bl
jle 0x43a354
inc ebp
jmp 0x43a358
cmp dword [esi], ebx
jne 0x43a191
cmp byte [edi + 4], bl
jne 0x43a207
cmp ecx, ebx
je 0x43a201
mov eax, dword [ecx + 0x20]
cmp dword [eax], ebx
je 0x43a1e4
mov edx, dword [ecx + 0x30]
cmp dword [edx], ebx
jle 0x43a1e4
mov eax, dword [eax]
movzx eax, word [eax]
jmp 0x43a1ee
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x43a201
mov word [edi + 6], ax
jmp 0x43a203
mov dword [edi], ebx
mov byte [edi + 4], 1
mov edx, dword [esp + 0x34]
movzx ecx, word [edi + 6]
push edx
lea eax, [esp + 0x30]
push eax
push ecx
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x28], bl
mov dword [esp + 0x3c], ebx
call fcn.004f7825
mov al, byte [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov byte [ecx], al
movsx eax, al
push edx
push eax
push str.0123456789abcdefABCDEF
call fcn.004f9dd0
add esp, 0x1c
test eax, eax
je 0x43a2b2
cmp byte [esp + 0x1f], bl
jne 0x43a25b
mov ecx, dword [esp + 0x24]
cmp byte [ecx], 0x30
je 0x43a26e
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x40]
jae 0x43a26e
inc dword [esp + 0x24]
mov byte [esp + 0x1f], 1
mov byte [esp + 0x1e], 1
cmp ebp, dword [esp + 0x58]
jbe 0x43a27e
call fcn.004cee93
cmp dword [esp + 0x5c], 0x10
mov eax, dword [esp + 0x48]
jae 0x43a28d
lea eax, [esp + 0x48]
cmp byte [eax + ebp], 0x7f
je 0x43a308
cmp ebp, dword [esp + 0x58]
jbe 0x43a29e
call fcn.004cee93
cmp dword [esp + 0x5c], 0x10
mov eax, dword [esp + 0x48]
jae 0x43a2ad
lea eax, [esp + 0x48]
inc byte [eax + ebp]
jmp 0x43a308
cmp ebp, dword [esp + 0x58]
jbe 0x43a2bd
call fcn.004cee93
cmp dword [esp + 0x5c], 0x10
mov eax, dword [esp + 0x48]
jae 0x43a2cc
lea eax, [esp + 0x48]
cmp byte [eax + ebp], bl
je 0x43a191
cmp word [esp + 0x3c], bx
je 0x43a191
cmp byte [edi + 4], bl
jne 0x43a2ec
mov ecx, edi
call fcn.0043b710
mov ax, word [esp + 0x3c]
cmp word [edi + 6], ax
jne 0x43a191
push ebx
push 1
lea ecx, [esp + 0x4c]
call fcn.0040de70
inc ebp
mov ecx, dword [edi]
cmp ecx, ebx
je 0x43a349
mov edx, dword [ecx + 0x20]
cmp dword [edx], ebx
je 0x43a32d
mov eax, dword [ecx + 0x30]
cmp dword [eax], ebx
jle 0x43a32d
dec dword [eax]
mov ecx, dword [ecx + 0x20]
mov eax, dword [ecx]
lea edx, [eax + 2]
mov dword [ecx], edx
movzx eax, word [eax]
jmp 0x43a337
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x43a349
mov byte [edi + 4], bl
jmp 0x43a101
mov dword [edi], ebx
mov byte [edi + 4], 1
jmp 0x43a101
mov byte [esp + 0x1e], bl
cmp dword [esp + 0x78], 0x10
mov esi, dword [esp + 0x64]
jae 0x43a367
lea esi, [esp + 0x64]
mov edi, 0x10
cmp byte [esp + 0x1e], bl
je 0x43a3dc
cmp ebp, ebx
jbe 0x43a3cc
cmp byte [esi], 0x7f
je 0x43a3cc
sub ebp, 1
je 0x43a3a0
cmp ebp, dword [esp + 0x58]
jbe 0x43a38b
call fcn.004cee93
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x5c], edi
jae 0x43a399
lea eax, [esp + 0x48]
mov dl, byte [esi]
cmp dl, byte [eax + ebp]
jne 0x43a3dc
cmp ebp, ebx
jne 0x43a3c4
cmp ebp, dword [esp + 0x58]
jbe 0x43a3af
call fcn.004cee93
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x5c], edi
jae 0x43a3bd
lea eax, [esp + 0x48]
mov cl, byte [esi]
cmp cl, byte [eax + ebp]
jl 0x43a3dc
cmp byte [esi + 1], bl
jle 0x43a372
inc esi
jmp 0x43a372
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x1f], bl
jne 0x43a3e0
mov byte [eax], 0x30
inc eax
jmp 0x43a3e0
mov eax, dword [esp + 0x30]
mov byte [eax], bl
cmp dword [esp + 0x5c], edi
jb 0x43a3f5
mov edx, dword [esp + 0x48]
push edx
call fcn.00485e85
add esp, 4
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
cmp dword [esp + 0x78], edi
jb 0x43a418
mov eax, dword [esp + 0x64]
push eax
call fcn.00485e85
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004ca80c
add esp, 0x78
ret