Function at 0x5d0130
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x6c2d86
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe0
push ebx
push ebp
push esi
push edi
mov eax, dword [0x710e60]
mov ecx, dword [0x710e64]
mov edx, dword [0x710e68]
mov dword [esp + 0x5c], eax
mov eax, dword [0x710e50]
mov dword [esp + 0x60], ecx
mov ecx, dword [0x710e54]
mov dword [esp + 0x3c], eax
mov ax, word [0x710e5c]
mov dword [esp + 0x64], edx
mov edx, dword [0x710e58]
mov word [esp + 0x48], ax
mov al, 0xe2
xor edi, edi
mov byte [esp + 0x51], al
mov byte [esp + 0x52], al
mov dword [esp + 0x40], ecx
mov al, 0xe1
xor esi, esi
lea ecx, [esp + 0xa8]
mov dword [esp + 0xf8], edi
mov dword [esp + 0x44], edx
mov byte [esp + 0x34], 0x15
mov byte [esp + 0x35], 0x13
mov byte [esp + 0x36], 0x14
mov byte [esp + 0x37], 0x10
mov byte [esp + 0x38], 0x12
mov byte [esp + 0x39], 0
mov byte [esp + 0x4c], 6
mov byte [esp + 0x4d], 8
mov byte [esp + 0x4e], 9
mov byte [esp + 0x4f], 1
mov byte [esp + 0x50], 3
mov byte [esp + 0x53], al
mov byte [esp + 0x54], al
mov dword [esp + 0x30], esi
call fcn.0060d180
lea ecx, [esp + 0x28]
mov byte [esp + 0xf8], 1
call fcn.0060fe70
lea ecx, [esp + 0xcc]
mov byte [esp + 0xf8], 2
call fcn.00546ec0
mov cl, byte [esp + 0x17]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x18], cl
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
push 5
lea ecx, [esp + 0x108]
mov byte [esp + 0xfc], 4
call fcn.00610190
push ecx
mov bl, al
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x703764
mov byte [esp + 0x38], bl
call fcn.0060ff10
lea edx, [esp + 0x6c]
push edx
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xf8], 5
push ecx
push edi
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x6c]
mov byte [esp + 0xf8], 4
cmp eax, edi
je 0x5d02b6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d02ad
cmp al, 0xff
je 0x5d02ad
dec al
mov byte [ecx], al
jmp 0x5d02b6
push ecx
call fcn.00697880
add esp, 4
mov al, byte [esp + 0x100]
test al, al
jne 0x5d067b
test bl, bl
jbe 0x5d0eb5
cmp bl, 5
ja 0x5d0eb5
mov ebx, dword [esp + 0x2c]
push ecx
lea edx, [esp + 0x108]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
cmp si, di
je 0x5d049a
mov al, byte [0x71bb5c]
test al, al
je 0x5d0320
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 1
push 0x703848
call fcn.0060ff10
jmp 0x5d0360
sub esp, 0x24
lea ecx, [esp + 0x80]
mov eax, esp
mov dword [esp + 0x34], esp
push 1
push ecx
push eax
lea ecx, [esp + 0xfc]
call fcn.00547f90
lea ecx, [esp + 0xcc]
call fcn.0060d330
push ecx
lea ecx, [esp + 0xac]
mov edx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0060d6b0
lea ecx, [esp + 0x2c]
call fcn.006101a0
lea ecx, [esp + 0x28]
call fcn.00610330
test ax, ax
jle 0x5d05af
cmp si, 1
jne 0x5d040c
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x703784
call fcn.0060ff10
lea eax, [esp + 0x50]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xf8], 6
push ecx
push edi
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x50]
mov byte [esp + 0xf8], 4
cmp eax, edi
je 0x5d03fb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d03f2
cmp al, 0xff
je 0x5d03f2
dec al
mov byte [ecx], al
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
jmp 0x5d0498
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
jmp 0x5d0498
cmp si, 2
jne 0x5d0498
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x70377c
call fcn.0060ff10
lea edx, [esp + 0x9c]
push edx
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xf8], 7
push ecx
push edi
push eax
lea ecx, [esp + 0x24]
call fcn.004136a0
mov eax, dword [esp + 0x9c]
mov byte [esp + 0xf8], 4
cmp eax, edi
je 0x5d0483
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d047a
cmp al, 0xff
je 0x5d047a
dec al
mov byte [ecx], al
jmp 0x5d0483
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
xor esi, esi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703784
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70377c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
mov dl, byte [esp + 0x18]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x20], esp
mov byte [ecx], dl
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edi
mov eax, dword [0x6ce1fc]
lea edx, [esp + 0x28]
push eax
push edi
push edx
call fcn.004136a0
push ecx
mov byte [esp + 0x10c], 9
mov ecx, esp
mov dword [esp + 0x44], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x10c], 4
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, edi
je 0x5d0590
dec eax
je 0x5d0572
dec eax
je 0x5d0eb5
jmp 0x5d02da
mov eax, ebx
mov byte [esp + 0x64], 0
and eax, 0xff
mov esi, 2
mov cl, byte [esp + eax + 0x33]
mov byte [esp + 0x62], cl
jmp 0x5d02da
mov edx, ebx
mov byte [esp + 0x64], 0xff
and edx, 0xff
mov esi, 1
mov al, byte [esp + edx + 0x33]
mov byte [esp + 0x62], al
jmp 0x5d02da
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x108], 8
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x108], 4
call fcn.006115e0
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x5d0617
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d060e
cmp al, 0xff
je 0x5d060e
dec al
mov byte [ecx], al
jmp 0x5d0617
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0xcc]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0xf8], 2
call fcn.00546f80
lea ecx, [esp + 0x28]
mov byte [esp + 0xf8], 1
call fcn.0060ffb0
lea ecx, [esp + 0xa8]
mov byte [esp + 0xf8], 0
call fcn.0060d280
lea ecx, [esp + 0x104]
mov dword [esp + 0xf8], 0xffffffff
call fcn.0060ffb0
xor ax, ax
jmp 0x5d0f3a
cmp al, 1
jne 0x5d0eb5
test bl, bl
jbe 0x5d0eb5
cmp bl, 9
ja 0x5d0eb5
mov byte [esp + 0x17], 0
push ecx
lea edx, [esp + 0x108]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0060fe80
mov ecx, dword [0x71b93c]
call fcn.006206f0
mov esi, dword [esp + 0x30]
xor ebp, ebp
cmp si, bp
je 0x5d0b11
mov al, byte [0x71bb5c]
test al, al
je 0x5d06e5
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 1
push 0x703848
call fcn.0060ff10
jmp 0x5d0722
sub esp, 0x24
lea ecx, [esp + 0x60]
mov eax, esp
mov dword [esp + 0x34], esp
push 1
push ecx
push eax
lea ecx, [esp + 0xfc]
call fcn.00547f90
lea ecx, [esp + 0xcc]
call fcn.0060d330
push ecx
lea ecx, [esp + 0xac]
mov edx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0060d6b0
lea ecx, [esp + 0x2c]
call fcn.006101a0
lea ecx, [esp + 0x28]
call fcn.00610330
test ax, ax
jle 0x5d0db4
cmp si, 1
jne 0x5d0880
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x703784
call fcn.0060ff10
lea eax, [esp + 0x8c]
push eax
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebx, eax
mov byte [esp + 0xf8], 0xa
cmp ecx, ebx
jae 0x5d0785
mov ebx, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x5d07a8
push ecx
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x5d0831
cmp ebx, ebp
jbe 0x5d07f5
cmp ebx, eax
jne 0x5d07f5
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5d07bc
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5d07f5
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5d07d9
mov eax, 0x6ce1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5d0831
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x5d0831
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5d0811
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x8c]
mov byte [esp + 0xf8], 4
cmp eax, ebp
je 0x5d0861
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d0858
cmp al, 0xff
je 0x5d0858
dec al
mov byte [ecx], al
jmp 0x5d0861
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ebp
mov byte [esp + 0x17], 0
jmp 0x5d0b0d
cmp si, 2
jne 0x5d09ba
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x70377c
call fcn.0060ff10
lea edx, [esp + 0x7c]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebx, eax
mov byte [esp + 0xf8], 0xb
cmp ecx, ebx
jae 0x5d08c5
mov ebx, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x5d08e8
push ecx
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x5d0971
cmp ebx, ebp
jbe 0x5d0935
cmp ebx, eax
jne 0x5d0935
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5d08fc
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5d0935
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5d0919
mov eax, 0x6ce1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5d0971
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x5d0971
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5d0951
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xf8], 4
cmp eax, ebp
je 0x5d099e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d0995
cmp al, 0xff
je 0x5d0995
dec al
mov byte [ecx], al
jmp 0x5d099e
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], ebp
mov byte [esp + 0x17], 0
jmp 0x5d0b0d
cmp si, 3
jne 0x5d0b0d
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 6
push 0x703764
call fcn.0060ff10
lea edx, [esp + 0x6c]
push edx
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x6ce1fc]
mov ebx, eax
mov byte [esp + 0xf8], 0xc
cmp ecx, ebx
jae 0x5d09ff
mov ebx, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x5d0a22
push ecx
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x5d0acf
cmp ebx, ebp
jbe 0x5d0a95
cmp ebx, eax
jne 0x5d0a95
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5d0a36
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5d0a95
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x5d0a61
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d0a58
cmp al, 0xff
je 0x5d0a58
dec al
mov byte [ecx], al
jmp 0x5d0a61
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5d0a79
mov eax, 0x6ce1f8
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5d0acf
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x5d0acf
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5d0ab1
mov esi, 0x6ce1f8
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.004141f0
mov eax, dword [esp + 0x6c]
mov byte [esp + 0xf8], 4
cmp eax, ebp
je 0x5d0afc
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d0af3
cmp al, 0xff
je 0x5d0af3
dec al
mov byte [ecx], al
jmp 0x5d0afc
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov byte [esp + 0x17], 1
mov dword [esp + 0x30], ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703784
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x70377c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x703774
call fcn.0060ff10
mov ecx, dword [0x71b93c]
call fcn.00620870
mov cl, byte [esp + 0x18]
sub esp, 0x10
mov ebp, esp
xor edi, edi
mov dword [esp + 0x20], esp
mov byte [ebp], cl
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov eax, dword [esp + 0x30]
mov esi, dword [0x6ce1fc]
mov ebx, eax
cmp esi, ebx
jae 0x5d0b9e
mov ebx, esi
lea edx, [esp + 0x28]
cmp ebp, edx
jne 0x5d0c02
cmp ebx, edi
jbe 0x5d0baf
call fcn.00697ab7
mov ecx, ebp
call fcn.00414980
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x5d0bc1
mov esi, eax
cmp esi, edi
jbe 0x5d0bf4
mov ecx, dword [ebp + 4]
sub eax, esi
add ebx, ecx
push eax
lea ecx, [esi + ebx]
push ecx
push ebx
call fcn.00698020
mov ebx, dword [ebp + 8]
add esp, 0xc
sub ebx, esi
mov ecx, ebp
push edi
push ebx
call fcn.00414210
test al, al
je 0x5d0bf4
push ebx
mov ecx, ebp
call fcn.004141f0
push edi
push edi
mov ecx, ebp
call fcn.004140d0
jmp 0x5d0c86
cmp ebx, edi
jbe 0x5d0c4e
cmp ebx, eax
jne 0x5d0c4e
mov eax, dword [esp + 0x2c]
cmp eax, edi
jne 0x5d0c17
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5d0c4e
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x2c]
cmp eax, edi
jne 0x5d0c33
mov eax, 0x6ce1f8
mov dword [ebp + 4], eax
mov edx, dword [esp + 0x30]
mov dword [ebp + 8], edx
mov ecx, dword [esp + 0x34]
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5d0c86
push 1
push ebx
mov ecx, ebp
call fcn.00414210
test al, al
je 0x5d0c86
mov esi, dword [esp + 0x2c]
cmp esi, edi
jne 0x5d0c69
mov esi, 0x6ce1f8
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebp
call fcn.004141f0
xor edi, edi
push ecx
mov byte [esp + 0x10c], 0xe
mov ecx, esp
mov dword [esp + 0x48], esp
push 6
push 0x70379c
call fcn.0060ff10
mov ecx, dword [0x71b93c]
mov byte [esp + 0x10c], 4
call fcn.006208f0
mov ecx, dword [0x71b93c]
call fcn.00620cd0
movsx eax, ax
sub eax, edi
je 0x5d0d4e
dec eax
je 0x5d0d11
dec eax
jne 0x5d0699
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x43], 0
and eax, 0xff
mov cl, byte [esp + eax + 0x4b]
mov al, byte [esp + 0x17]
mov byte [esp + 0x42], cl
mov cl, byte [esp + 0x2c]
cmp cl, 9
sete dl
test al, al
mov byte [esp + 0x44], dl
jne 0x5d0e80
mov dword [esp + 0x30], 3
jmp 0x5d0699
mov eax, dword [esp + 0x2c]
and eax, 0xff
mov cl, byte [esp + eax + 0x4b]
mov al, byte [esp + 0x2c]
cmp al, 8
mov byte [esp + 0x42], cl
je 0x5d0d33
cmp al, 9
mov byte [esp + 0x43], 7
jne 0x5d0d38
mov byte [esp + 0x43], 0
cmp al, 9
mov dword [esp + 0x30], 2
sete dl
mov byte [esp + 0x44], dl
jmp 0x5d0699
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x43], 7
and eax, 0xff
mov cl, byte [esp + eax + 0x4b]
mov al, byte [esp + 0x2c]
cmp al, 6
mov byte [esp + 0x42], cl
je 0x5d0da2
cmp al, 9
je 0x5d0da2
cmp al, 7
jne 0x5d0d86
mov byte [esp + 0x44], 2
mov dword [esp + 0x30], 1
jmp 0x5d0699
sub al, 8
mov dword [esp + 0x30], 1
neg al
sbb al, al
and eax, 0xff
mov byte [esp + 0x44], al
jmp 0x5d0699
mov byte [esp + 0x44], 1
mov dword [esp + 0x30], 1
jmp 0x5d0699
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x7037f4
call fcn.0060ff10
push ecx
mov byte [esp + 0x108], 0xd
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x703840
call fcn.0060ff10
mov ecx, 0x71b930
mov byte [esp + 0x108], 4
call fcn.006115e0
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x5d0e1c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d0e13
cmp al, 0xff
je 0x5d0e13
dec al
mov byte [ecx], al
jmp 0x5d0e1c
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0xcc]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov byte [esp + 0xf8], 2
call fcn.00546f80
lea ecx, [esp + 0x28]
mov byte [esp + 0xf8], 1
call fcn.0060ffb0
lea ecx, [esp + 0xa8]
mov byte [esp + 0xf8], 0
call fcn.0060d280
lea ecx, [esp + 0x104]
mov dword [esp + 0xf8], 0xffffffff
call fcn.0060ffb0
xor ax, ax
jmp 0x5d0f3a
mov eax, dword [esp + 0x1c]
xor esi, esi
cmp eax, esi
je 0x5d0ea7
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d0e9e
cmp al, 0xff
je 0x5d0e9e
dec al
mov byte [ecx], al
jmp 0x5d0ea7
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jmp 0x5d0ee6
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x5d0eda
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5d0ed1
cmp al, 0xff
je 0x5d0ed1
dec al
mov byte [ecx], al
jmp 0x5d0eda
push ecx
call fcn.00697880
add esp, 4
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
lea ecx, [esp + 0xcc]
mov byte [esp + 0xf8], 2
call fcn.00546f80
lea ecx, [esp + 0x28]
mov byte [esp + 0xf8], 1
call fcn.0060ffb0
lea ecx, [esp + 0xa8]
mov byte [esp + 0xf8], 0
call fcn.0060d280
lea ecx, [esp + 0x104]
mov dword [esp + 0xf8], 0xffffffff
call fcn.0060ffb0
mov ax, 1
mov ecx, dword [esp + 0xf0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xec
ret 8