Function at 0x582ed0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x6c92b2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x120
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call fcn.00418cd0
lea ecx, [ebp + 0x14]
call fcn.0040d350
mov eax, dword [ebp + 0x18]
lea ecx, [esp + 0x18]
push ecx
push 9
lea ecx, [ebp + 0x20]
mov dword [esp + 0x20], eax
call fcn.00581840
mov eax, 1
xor esi, esi
xor ebx, ebx
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], eax
mov byte [ebp + 0x38], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x138], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov edx, dword [esp + 0x140]
or edi, 0xffffffff
mov byte [esp + 0x138], 3
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edi
mov byte [esp + 0x13], bl
mov byte [esp + 0x1c], bl
mov byte [esp + 0x20], bl
mov edx, dword [esp + 0x18]
mov al, byte [edx]
test al, al
mov ecx, edx
mov dword [esp + 0x24], ecx
je 0x582fa8
cmp al, 0xd
je 0x582fa4
cmp al, 0xa
je 0x582fa4
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x582f94
mov dword [esp + 0x24], ecx
mov eax, ecx
sub eax, edx
mov dword [esp + 0x28], eax
inc eax
test esi, esi
jne 0x582fb9
xor ecx, ecx
jmp 0x582fbd
mov ecx, ebx
sub ecx, esi
cmp ecx, eax
jae 0x582fe9
test esi, esi
jne 0x582fc9
xor ecx, ecx
jmp 0x582fcd
mov ecx, ebx
sub ecx, esi
lea edx, [esp + 0x1c]
push edx
sub eax, ecx
push eax
push ebx
lea ecx, [esp + 0x48]
call fcn.00578eb0
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
jmp 0x58300d
test esi, esi
je 0x58300d
mov ecx, ebx
sub ecx, esi
cmp eax, ecx
jae 0x58300d
add eax, esi
cmp eax, ebx
je 0x58300d
push 0
push ebx
push eax
call fcn.0062fc50
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
push eax
push ecx
push esi
call fcn.0062f860
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov eax, esi
sub eax, edx
add eax, ecx
add esp, 0xc
test esi, esi
mov byte [eax], 0
jne 0x583039
xor eax, eax
jmp 0x58303d
mov eax, ebx
sub eax, esi
mov ebx, dword [esp + 0x30]
test ebx, ebx
mov ecx, dword [esp + 0x34]
jne 0x58304d
xor edx, edx
jmp 0x583051
mov edx, ecx
sub edx, ebx
cmp edx, eax
jae 0x583079
test ebx, ebx
jne 0x58305d
xor edx, edx
jmp 0x583061
mov edx, ecx
sub edx, ebx
lea ebx, [esp + 0x20]
push ebx
sub eax, edx
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.00578eb0
mov ebx, dword [esp + 0x30]
jmp 0x58309b
test ebx, ebx
je 0x58309b
mov edx, ecx
sub edx, ebx
cmp eax, edx
jae 0x58309b
add eax, ebx
cmp eax, ecx
je 0x58309b
push 0
push ecx
push eax
call fcn.0062fc50
add esp, 0xc
mov dword [esp + 0x34], eax
push esi
push ebx
call fcn.00630960
push esi
call fcn.005793a0
push esi
call fcn.00579420
mov al, byte [esi]
add esp, 0x10
test al, al
je 0x583603
push 0x6ec294
push esi
call fcn.00630f70
add esp, 8
cmp eax, esi
je 0x583603
cmp byte [esi], 0x5b
jne 0x5832fa
mov ecx, dword [esp + 0x14]
xor ebx, ebx
cmp ecx, ebx
jl 0x583154
cmp edi, ebx
jl 0x583154
mov eax, dword [ebp + 4]
imul ecx, ecx, 0x54
imul edi, edi, 0x38
add ecx, eax
mov eax, ecx
mov eax, dword [eax + 0x48]
add edi, eax
mov eax, dword [edi + 0x30]
add edi, 0x1c
cmp eax, ebx
jbe 0x583121
cmp dword [edi + 0x18], 0x10
jb 0x58310f
mov eax, dword [edi + 4]
jmp 0x583112
lea eax, [edi + 4]
cmp byte [eax], 0x22
jne 0x583121
push 1
push ebx
mov ecx, edi
call fcn.00403c70
mov eax, dword [edi + 0x14]
cmp eax, ebx
jbe 0x583148
cmp dword [edi + 0x18], 0x10
jb 0x583133
mov ecx, dword [edi + 4]
jmp 0x583136
lea ecx, [edi + 4]
cmp byte [eax + ecx - 1], 0x22
jne 0x583148
push 1
dec eax
push eax
mov ecx, edi
call fcn.00403c70
or edi, 0xffffffff
mov dword [esp + 0x14], edi
mov byte [esp + 0x13], 0
push esi
call fcn.0062f7d0
add esp, 4
cmp eax, 2
jl 0x583603
cmp byte [esi + eax - 1], 0x5d
jne 0x583172
mov byte [esi + eax - 1], 0
mov al, byte [ebp + 0x39]
test al, al
jne 0x583182
push esi
call fcn.006bfb4b
add esp, 4
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
lea ebx, [ebx]
mov edi, dword [ebp + 4]
test edi, edi
je 0x583201
mov ecx, dword [ebp + 8]
sub ecx, edi
mov eax, 0x30c30c31
imul ecx
mov ecx, dword [esp + 0x18]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jae 0x583201
mov edx, dword [esp + 0x14]
lea ebx, [esi + 1]
push ebx
add edi, edx
call fcn.0062f7d0
add esp, 4
push eax
mov eax, dword [edi + 0x14]
push ebx
push eax
push 0
mov ecx, edi
call fcn.00403ba0
test eax, eax
je 0x5831f0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
inc ecx
add eax, 0x54
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
jmp 0x583190
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
jne 0x583600
mov eax, dword [ebp + 4]
test eax, eax
jne 0x58320c
xor ebx, ebx
jmp 0x583222
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
lea ecx, [esp + 0xdc]
mov dword [esp + 0x14], ebx
call fcn.00582290
push eax
mov ecx, ebp
mov byte [esp + 0x13c], 4
call fcn.00582e40
lea ecx, [esp + 0xdc]
mov byte [esp + 0x138], 3
call fcn.00416ec0
mov eax, dword [ebp + 4]
lea edi, [esi + 1]
mov esi, ebx
imul esi, esi, 0x54
push edi
add esi, eax
call fcn.0062f7d0
add esp, 4
push eax
push edi
mov ecx, esi
call fcn.00404c50
push edi
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], 0
mov byte [esp + 0x74], 0
call fcn.0062f7d0
add esp, 4
push eax
push edi
lea ecx, [esp + 0x74]
call fcn.00404c50
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [ebp + 0x10]
mov byte [esp + 0x13c], 5
call fcn.00582780
mov dword [eax], ebx
cmp dword [esp + 0x84], 0x10
mov byte [esp + 0x138], 3
jb 0x5832da
mov edx, dword [esp + 0x70]
push edx
call fcn.00630114
add esp, 4
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], 0
mov byte [esp + 0x70], 0
jmp 0x583600
mov ebx, dword [esp + 0x14]
cmp ebx, 0xffffffff
jle 0x583603
push 0x6d2b4c
push esi
call fcn.00630f70
add esp, 8
test eax, eax
mov dword [esp + 0x18], eax
je 0x583547
mov al, byte [esp + 0x13]
test al, al
jne 0x583547
mov ebx, dword [esp + 0x18]
sub ebx, esi
lea eax, [ebx + 1]
push 0
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0x1b], 0
call fcn.00579080
push ebx
mov ebx, dword [esp + 0x64]
push esi
push ebx
call fcn.0062f860
mov eax, ebx
sub eax, esi
mov esi, dword [esp + 0x24]
add eax, esi
push ebx
mov byte [eax], 0
call fcn.00579420
push ebx
call fcn.005793a0
inc esi
push esi
call fcn.0062f7d0
add esp, 0x18
inc eax
push 0
push eax
lea ecx, [esp + 0x54]
call fcn.00579080
push esi
mov esi, dword [esp + 0x54]
push esi
call fcn.00630960
push esi
call fcn.00579420
push esi
call fcn.005793a0
mov eax, dword [esp + 0x24]
add esp, 0x10
test eax, eax
jl 0x5833fe
test edi, edi
jl 0x5833fe
mov ecx, dword [ebp + 4]
imul eax, eax, 0x54
imul edi, edi, 0x38
add eax, ecx
mov eax, dword [eax + 0x48]
add edi, eax
mov eax, dword [edi + 0x30]
test eax, eax
lea esi, [edi + 0x1c]
jbe 0x5833dc
push 0
mov ecx, esi
call fcn.004114d0
cmp byte [eax], 0x22
jne 0x5833dc
push 1
push 0
mov ecx, esi
call fcn.00403c70
mov edi, dword [esi + 0x14]
test edi, edi
jbe 0x5833fe
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.004114d0
cmp byte [eax], 0x22
jne 0x5833fe
push 1
dec edi
push edi
mov ecx, esi
call fcn.00403c70
mov al, byte [ebp + 0x39]
test al, al
jne 0x58340e
push ebx
call fcn.006bfb4b
add esp, 4
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 4]
imul esi, esi, 0x54
lea ecx, [eax + esi + 0x44]
call fcn.00402820
mov ecx, dword [esp + 0x60]
push ecx
lea ecx, [esp + 0xc4]
mov edi, eax
call fcn.00404f60
mov eax, dword [ebp + 4]
lea edx, [esp + 0xc0]
push edx
lea ecx, [eax + esi + 0x1c]
mov byte [esp + 0x13c], 6
call fcn.00582780
lea ecx, [esp + 0xc0]
mov dword [eax], edi
call fcn.00453570
xor eax, eax
mov ecx, 0xf
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], eax
mov byte [esp + 0x8c], al
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb8], eax
mov byte [esp + 0xa8], al
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x88]
push ecx
lea ecx, [eax + esi + 0x44]
mov byte [esp + 0x13c], 7
call fcn.00582300
lea ecx, [esp + 0x88]
mov byte [esp + 0x138], 3
call fcn.004535d0
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x60]
mov ebx, edi
imul ebx, ebx, 0x38
add eax, esi
mov eax, dword [eax + 0x48]
add eax, ebx
push edx
mov dword [esp + 0x2c], eax
call fcn.0062f7d0
mov ecx, dword [esp + 0x2c]
add esp, 4
push eax
mov eax, dword [esp + 0x64]
push eax
call fcn.00404c50
mov eax, dword [ebp + 4]
add eax, esi
mov esi, dword [eax + 0x48]
add esi, ebx
mov ebx, dword [esp + 0x50]
push ebx
call fcn.0062f7d0
add esp, 4
push eax
push ebx
lea ecx, [esi + 0x1c]
call fcn.00404c50
cmp byte [ebx], 0x22
jne 0x583519
mov byte [esp + 0x13], 1
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0062f7d0
add esp, 4
test eax, eax
jle 0x583603
mov edx, dword [esp + 0x50]
cmp byte [edx + eax - 1], 0x22
jne 0x583603
mov byte [esp + 0x13], 0
jmp 0x583603
test ebx, ebx
jl 0x583603
test edi, edi
jl 0x583603
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 4]
imul esi, esi, 0x54
mov ebx, edi
imul ebx, ebx, 0x38
add eax, esi
mov eax, dword [eax + 0x48]
add eax, ebx
push 0x6d2b48
lea ecx, [eax + 0x1c]
call fcn.0040d2f0
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x30]
add eax, esi
mov eax, dword [eax + 0x48]
add eax, ebx
push ecx
lea ecx, [eax + 0x1c]
call fcn.0040d2f0
mov edx, dword [esp + 0x30]
push edx
call fcn.0062f7d0
add esp, 4
test eax, eax
jle 0x583603
mov ecx, dword [esp + 0x30]
cmp byte [ecx + eax - 1], 0x22
jne 0x583603
mov eax, dword [ebp + 4]
add eax, esi
mov eax, dword [eax + 0x48]
add eax, ebx
lea esi, [eax + 0x1c]
mov eax, dword [esi + 0x14]
test eax, eax
jbe 0x5835da
push 0
mov ecx, esi
call fcn.004114d0
cmp byte [eax], 0x22
jne 0x5835da
push 1
push 0
mov ecx, esi
call fcn.00403c70
mov eax, dword [esi + 0x14]
test eax, eax
jbe 0x5835fb
lea edi, [eax - 1]
push edi
mov ecx, esi
call fcn.004114d0
cmp byte [eax], 0x22
jne 0x5835fb
push 1
push edi
mov ecx, esi
call fcn.00403c70
mov byte [esp + 0x13], 0
or edi, 0xffffffff
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
je 0x583633
lea ecx, [eax + 1]
mov al, byte [ecx]
test al, al
mov dword [esp + 0x18], ecx
je 0x583633
cmp al, 0xa
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x44]
jne 0x582f84
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x582f84
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x58369f
test edi, edi
jl 0x58369f
mov edx, dword [ebp + 4]
imul eax, eax, 0x54
imul edi, edi, 0x38
mov ecx, dword [eax + edx + 0x48]
add eax, edx
add edi, ecx
mov eax, dword [edi + 0x30]
test eax, eax
lea esi, [edi + 0x1c]
jbe 0x583678
cmp dword [esi + 0x18], 0x10
jb 0x583665
mov eax, dword [esi + 4]
jmp 0x583668
lea eax, [esi + 4]
cmp byte [eax], 0x22
jne 0x583678
push 1
push 0
mov ecx, esi
call fcn.00403c70
mov eax, dword [esi + 0x14]
test eax, eax
jbe 0x58369f
cmp dword [esi + 0x18], 0x10
jb 0x58368a
mov ecx, dword [esi + 4]
jmp 0x58368d
lea ecx, [esi + 4]
cmp byte [eax + ecx - 1], 0x22
jne 0x58369f
push 1
dec eax
push eax
mov ecx, esi
call fcn.00403c70
mov eax, dword [esp + 0x50]
test eax, eax
pop edi
pop esi
mov byte [ebp + 0x38], 1
pop ebp
pop ebx
je 0x5836b8
push eax
call fcn.00630114
add esp, 4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x5836c9
push eax
call fcn.00630114
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5836da
push eax
call fcn.00630114
add esp, 4
mov edx, dword [esp + 0x30]
push edx
call fcn.00630114
mov ecx, dword [esp + 0x124]
mov al, 1
mov dword fs:[0], ecx
add esp, 0x130
ret 4