Function at 0x436660
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4bf07f
mov eax, dword fs:[0]
push eax
sub esp, 0xf0
mov eax, dword [0x4eaf00]
xor eax, esp
mov dword [esp + 0xe8], eax
push ebx
push esi
push edi
mov eax, dword [0x4eaf00]
xor eax, esp
push eax
lea eax, [esp + 0x100]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
xor esi, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0xbc], 0xf
mov dword [esp + 0xb8], esi
mov byte [esp + 0xa8], 0
mov dword [esp + 0x108], esi
cmp dword [edi + 0x14], esi
ja 0x436715
mov ecx, edi
call fcn.00432d70
push 0xffffffffffffffff
push esi
mov dword [ebx + 0x18], 0xf
mov dword [ebx + 0x14], esi
push edi
mov ecx, ebx
mov byte [ebx + 4], 0
call fcn.00404320
cmp dword [esp + 0xbc], 0x10
jb 0x436eac
mov eax, dword [esp + 0xa8]
push eax
jmp 0x436ea4
mov dword [esp + 0x24], vtable.BaseFunc::_binary_istream_class_BaseFunc::_binary_buf__void___cdecl_BaseFunc::_excption_check_class_BaseFunc::bin_stream_exception__bool__char_const__const__char_const__const__int__char_const__const__.0
mov dword [esp + 0x28], edi
mov byte [esp + 0x108], 1
mov byte [esp + 0x1b], 0
cmp dword [edi + 0x18], 0x10
jb 0x436739
mov eax, dword [edi + 4]
jmp 0x43673c
lea eax, [edi + 4]
push 1
push eax
lea ecx, [esp + 0x23]
push 1
push ecx
call fcn.0047b443
mov dl, byte [esp + 0x2b]
mov eax, dword [esp + 0x30]
mov byte [eax + 4], dl
add esp, 0x10
lea esi, [esp + 0x50]
lea edx, [esp + 0x24]
mov dword [esp + 0x2c], 1
call fcn.004349e0
mov byte [esp + 0x108], 2
cmp dword [esp + 0x64], 0x12
je 0x4367e6
mov ecx, edi
call fcn.00432d70
push 0xffffffffffffffff
push 0
mov esi, 0xf
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x14], 0
push edi
mov ecx, ebx
mov byte [ebx + 4], 0
call fcn.00404320
mov edi, 0x10
cmp dword [esp + 0x68], edi
jb 0x4367bb
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0045afe4
add esp, 4
cmp dword [esp + 0xbc], edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], 0
mov byte [esp + 0x54], 0
jb 0x436eac
mov edx, dword [esp + 0xa8]
push edx
jmp 0x436ea4
mov eax, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x1c], edi
cmp dword [eax + 0x18], 0x10
jb 0x4367fb
mov eax, dword [eax + 4]
jmp 0x4367fe
add eax, 4
mov esi, dword [esp + 0x2c]
mov ebx, 4
push ebx
add eax, esi
push eax
lea ecx, [esp + 0x24]
push ebx
push ecx
call fcn.0047b443
add esp, 0x10
add esi, ebx
mov dword [esp + 0x2c], esi
push edi
mov esi, 0xf
push 0x4cdcd7
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], edi
mov byte [esp + 0x78], 0
call fcn.00404400
mov byte [esp + 0x108], 3
push edi
push 0x4cdcd7
lea ecx, [esp + 0x90]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xa4], edi
mov byte [esp + 0x94], 0
call fcn.00404400
mov byte [esp + 0x108], bl
cmp dword [esp + 0x64], edi
ja 0x436888
call fcn.0049fbb0
mov eax, dword [esp + 0x54]
mov edi, 0x10
cmp dword [esp + 0x68], edi
jae 0x43689b
lea eax, [esp + 0x54]
mov dl, byte [eax]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], 0xd
ja 0x4368c0
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x4368ce
lea eax, [esp + 0x54]
mov cl, byte [eax + 0xd]
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], 7
ja 0x4368f4
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436902
lea eax, [esp + 0x54]
mov al, byte [eax + 7]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], ebx
ja 0x436927
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436935
lea eax, [esp + 0x54]
mov dl, byte [eax + 4]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], 3
ja 0x43695b
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436969
lea eax, [esp + 0x54]
mov cl, byte [eax + 3]
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], 0xc
ja 0x43698f
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x43699d
lea eax, [esp + 0x54]
mov al, byte [eax + 0xc]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], 0xa
ja 0x4369c3
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x4369d1
lea eax, [esp + 0x54]
mov dl, byte [eax + 0xa]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], 6
ja 0x4369f7
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436a05
lea eax, [esp + 0x54]
mov cl, byte [eax + 6]
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
push 1
lea ecx, [esp + 0x90]
call fcn.004031f0
cmp dword [esp + 0x64], 0xb
ja 0x436a2b
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436a39
lea eax, [esp + 0x54]
mov al, byte [eax + 0xb]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], 0xe
ja 0x436a5c
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436a6a
lea eax, [esp + 0x54]
mov dl, byte [eax + 0xe]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], 5
ja 0x436a8d
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436a9b
lea eax, [esp + 0x54]
mov cl, byte [eax + 5]
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], 1
ja 0x436abe
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436acc
lea eax, [esp + 0x54]
mov al, byte [eax + 1]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], 2
ja 0x436aef
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436afd
lea eax, [esp + 0x54]
mov dl, byte [eax + 2]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], 9
ja 0x436b20
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436b2e
lea eax, [esp + 0x54]
mov cl, byte [eax + 9]
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], esi
ja 0x436b50
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436b5e
lea eax, [esp + 0x54]
mov al, byte [eax + 0xf]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], 8
ja 0x436b81
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436b8f
lea eax, [esp + 0x54]
mov dl, byte [eax + 8]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], edi
ja 0x436bb1
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436bbf
lea eax, [esp + 0x54]
mov cl, byte [eax + 0x10]
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x64], 0x11
ja 0x436be2
call fcn.0049fbb0
cmp dword [esp + 0x68], edi
mov eax, dword [esp + 0x54]
jae 0x436bf0
lea eax, [esp + 0x54]
mov al, byte [eax + 0x11]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
push 1
lea ecx, [esp + 0x74]
call fcn.004031f0
cmp dword [esp + 0x84], edi
mov eax, dword [esp + 0x70]
jae 0x436c18
lea eax, [esp + 0x70]
mov edx, dword [esp + 0x1c]
push edx
mov esi, 0xf
push eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0xfc], esi
mov dword [esp + 0xf8], 0
mov byte [esp + 0xe8], 0
call fcn.00404400
lea eax, [esp + 0xdc]
push eax
mov byte [esp + 0x10c], 5
call fcn.004371a0
lea ecx, [esp + 0x8c]
add esp, 4
push ecx
mov ebx, eax
call fcn.004371a0
add esp, 4
xor ebx, eax
push 0xe8e401fd
jmp 0x52ebc7
call fcn.0045afe4
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x100]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.0047b434
mov esp, ebp
pop ebp
ret 8