Function at 0x5fc380
Capabilities:
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x6d4678
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa4
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x3c], ebp
mov al, byte [esp + 0x37]
mov dword [esp + 0xbc], 1
mov byte [esp + 0x14], al
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
push 6
push 0x7147a4
lea ecx, [esp + 0x18]
mov byte [esp + 0xc4], 2
call fcn.0061d820
push 4
lea ecx, [esp + 0xcc]
mov byte [esp + 0xc0], 3
call fcn.0061daa0
push 5
lea ecx, [esp + 0xcc]
mov byte [esp + 0x28], al
call fcn.0061daa0
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x24]
and eax, 0xff
mov dword [esp + 0x38], ebp
sub eax, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
je 0x5fcda4
dec eax
je 0x5fcaed
dec eax
jne case.default.0x5fcdba
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 0xa
ja case.default.0x5fcdba
jmp dword [eax*4 + 0x5fd380]
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 7
cmp eax, 4
ja case.default.0x5fc471
jmp dword [eax*4 + 0x5fd3ac]
push 0x5f
jmp 0x5fc497
push 0x6e
jmp 0x5fc497
push 0xb6
jmp 0x5fc497
push 0xb7
jmp 0x5fc497
push 0xb2
jmp 0x5fc497
push 0x18
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x58]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0xbc], 7
cmp eax, ebx
jae 0x5fc4da
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fc4fd
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x5fc586
cmp ebx, ebp
jbe 0x5fc54a
cmp ebx, ecx
jne 0x5fc54a
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fc511
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5fc54a
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fc52e
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5fc586
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5fc586
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fc566
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
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 + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x58]
mov byte [esp + 0xbc], 3
cmp eax, ebp
je case.default.0x5fcdba
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5fd151
cmp al, 0xff
je 0x5fd151
dec al
mov byte [ecx], al
jmp case.default.0x5fcdba
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
cmp al, 0xf4
push 6
mov ecx, esi
jae 0x5fc5e7
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e41a0]
jmp 0x5fc638
call fcn.0061daa0
and eax, 0xff
sub eax, 0xf4
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e4198]
fsub qword [0x6de020]
jmp 0x5fc638
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
cmp al, 0xfa
push 6
mov ecx, esi
jae 0x5fc65d
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e3ce8]
fstp qword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + 0x48]
push str._.2f
push edx
call fcn.006a6fa5
add esp, 0x10
jmp 0x5fcf9e
call fcn.0061daa0
and eax, 0xff
sub eax, 0xfa
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6ddb40]
fsub qword [0x6e3b78]
jmp 0x5fc638
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 7
cmp eax, 5
ja case.default.0x5fc6a1
jmp dword [eax*4 + 0x5fd3c0]
push 0x5f
jmp 0x5fc6c5
push 0x73
jmp 0x5fc6c5
push 0x78
jmp 0x5fc6c5
push 0x76
jmp 0x5fc6c5
push 0xb8
jmp 0x5fc6c5
push 0x75
jmp 0x5fc6c5
push 0x18
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xa8]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0xbc], 8
cmp eax, ebx
jae 0x5fc70b
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fc73d
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
mov eax, dword [esp + 0xa8]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
cmp ebx, ebp
jbe 0x5fc79c
cmp ebx, ecx
jne 0x5fc79c
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fc751
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5fc79c
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fc76e
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xbc], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0xa8]
jmp 0x5fc592
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5fc7d8
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fc7b8
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
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 + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0xa8]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
cmp al, 0xf4
push 6
mov ecx, esi
jae 0x5fc81d
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e41a0]
jmp 0x5fc638
call fcn.0061daa0
and eax, 0xff
sub eax, 0xf4
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e4198]
fsub qword [0x6de020]
jmp 0x5fc638
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
cmp al, 0xfa
push 6
mov ecx, esi
jae 0x5fc870
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5fc632
call fcn.0061daa0
and eax, 0xff
sub eax, 0xfa
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6ddb40]
fsub qword [0x6e3b78]
jmp 0x5fc638
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
cmp eax, 3
ja case.default.0x5fc8b9
jmp dword [eax*4 + 0x5fd3d8]
push 0x5f
jmp 0x5fc8d2
push 0x7f
jmp 0x5fc8d2
push 0x69
jmp 0x5fc8d2
push 0x7e
jmp 0x5fc8d2
push 0x18
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x78]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6dd1fc]
mov ebx, eax
mov byte [esp + 0xbc], 9
cmp edi, ebx
jae 0x5fc916
mov ebx, edi
lea ecx, [esp + 0x14]
cmp ecx, esi
jne 0x5fc994
cmp dword [esp + 0x1c], ebx
jae 0x5fc929
call fcn.006a6707
lea ecx, [esp + 0x14]
call fcn.00414b70
mov eax, dword [esp + 0x1c]
sub eax, ebx
cmp eax, edi
jae 0x5fc93e
mov edi, eax
cmp edi, ebp
jbe 0x5fc978
mov edx, dword [esp + 0x18]
sub eax, edi
push eax
lea ecx, [edx + ebx]
lea edx, [ecx + edi]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x28]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x14]
push ebp
push esi
call fcn.00414230
test al, al
je 0x5fc978
push esi
lea ecx, [esp + 0x18]
call fcn.00414210
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
mov eax, dword [esp + 0x78]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
cmp ebx, ebp
jbe 0x5fc9f0
cmp ebx, eax
jne 0x5fc9f0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fc9a8
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5fc9f0
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fc9c5
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xbc], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0x78]
jmp 0x5fc592
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5fca2a
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fca0c
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
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 + 0x18]
call fcn.00414210
mov eax, dword [esp + 0x78]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
lea ecx, [esp + 0x14]
push ecx
push 0x89
push 0x88
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x80
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x87
push 0x86
push 6
call fcn.0061daa0
and al, 0x40
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
cmp al, 0xfa
push 6
mov ecx, esi
jae 0x5fcab6
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5fc632
call fcn.0061daa0
and eax, 0xff
sub eax, 0xfa
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6ddb40]
fsub qword [0x6e3b78]
jmp 0x5fc638
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
jmp 0x5fc63c
mov eax, dword [esp + 0x30]
and eax, 0xff
dec eax
cmp eax, 0xf
ja case.default.0x5fcdba
jmp dword [eax*4 + 0x5fd3e8]
lea ecx, [esp + 0x14]
push ecx
push 4
push 3
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 4
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
lea edx, [esp + 0x14]
push edx
push 4
push 3
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x10
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
lea eax, [esp + 0x14]
push eax
push 4
push 3
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x20
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
lea ecx, [esp + 0x14]
push ecx
jmp 0x5fcbca
lea edx, [esp + 0x14]
push edx
jmp 0x5fcbca
lea ecx, [esp + 0x14]
push ecx
push 4
push 3
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x40
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
lea edx, [esp + 0x14]
push edx
jmp 0x5fcb50
lea eax, [esp + 0x14]
push eax
jmp 0x5fcb2e
lea ecx, [esp + 0x14]
push ecx
push 4
push 3
push 6
jmp 0x5fcf56
lea edx, [esp + 0x14]
push edx
jmp 0x5fcb0c
lea eax, [esp + 0x14]
push eax
push 4
push 3
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x80
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
push 7
push 2
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
cmp eax, 9
ja case.default.0x5fcc08
jmp dword [eax*4 + 0x5fd428]
push 1
jmp 0x5fcc39
push 2
jmp 0x5fcc39
push 3
jmp 0x5fcc39
push 4
jmp 0x5fcc39
push 5
jmp 0x5fcc39
push 6
jmp 0x5fcc39
push 7
jmp 0x5fcc39
push 8
jmp 0x5fcc39
push 9
jmp 0x5fcc39
push 0xa
jmp 0x5fcc39
push 0xb
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x98]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0xbc], 6
cmp eax, ebx
jae 0x5fcc7f
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fccb1
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
mov eax, dword [esp + 0x98]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
cmp ebx, ebp
jbe 0x5fcd10
cmp ebx, ecx
jne 0x5fcd10
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fccc5
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5fcd10
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fcce2
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xbc], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0x98]
jmp 0x5fc592
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5fcd4c
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fcd2c
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
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 + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x98]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 4
push 3
push 6
call fcn.0061daa0
and al, 1
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
lea eax, [esp + 0x14]
lea ecx, [esi + 8]
push eax
push 4
push 3
push 6
call fcn.0061daa0
and al, 2
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 6
ja case.default.0x5fcdba
jmp dword [eax*4 + 0x5fd450]
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 2
push 1
push 6
call fcn.0061daa0
and al, 0x80
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
shr eax, 5
cmp eax, 7
ja case.default.0x5fce07
jmp dword [eax*4 + 0x5fd46c]
push 0x60
jmp 0x5fce2c
push 0x61
jmp 0x5fce2c
push 0x62
jmp 0x5fce2c
push 0x63
jmp 0x5fce2c
push 0x64
jmp 0x5fce2c
push 0x65
jmp 0x5fce2c
push 0x66
jmp 0x5fce2c
push 0x67
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x68]
push ecx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0xbc], 4
cmp eax, ebx
jae 0x5fce6f
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fce9e
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
mov eax, dword [esp + 0x68]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
cmp ebx, ebp
jbe 0x5fcefa
cmp ebx, ecx
jne 0x5fcefa
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fceb2
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5fcefa
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fcecf
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xbc], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0x68]
jmp 0x5fc592
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5fcf34
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fcf16
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
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 + 0x18]
call fcn.00414210
mov eax, dword [esp + 0x68]
mov byte [esp + 0xbc], 3
jmp 0x5fc592
lea ecx, [esp + 0x14]
push ecx
push 0xd3
push 0xd4
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 8
mov ecx, esi
push eax
call fcn.005fe030
jmp case.default.0x5fcdba
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x6c
push 0x6d
push 7
call fcn.0061daa0
and al, 4
push eax
mov ecx, esi
call fcn.005fe200
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x40]
push eax
push 0x713498
push ecx
call fcn.006a6fa5
add esp, 0xc
cmp dword [esp + 0x1c], ebp
jne 0x5fd1ee
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x5fcfc2
call fcn.006a64db
mov edi, dword [esp + 0x18]
cmp edi, ebp
je 0x5fd197
mov al, byte [edi - 1]
test al, al
je 0x5fd197
cmp al, 0xff
je 0x5fd197
cmp ebx, ebp
jne 0x5fd1c0
dec al
push ebp
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x5fd1ee
push 5
push 2
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 3
cmp eax, 3
ja case.default.0x5fd01c
jmp dword [eax*4 + 0x5fd48c]
push 0x68
jmp 0x5fd031
push 0x69
jmp 0x5fd031
push 0x6a
jmp 0x5fd031
push 0x6b
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x88]
push ecx
call fcn.0061ca80
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0xbc], 5
cmp eax, ebx
jae 0x5fd077
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5fd09a
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x5fd123
cmp ebx, ebp
jbe 0x5fd0e7
cmp ebx, ecx
jne 0x5fd0e7
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fd0ae
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5fd0e7
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5fd0cb
mov eax, 0x6dd1f8
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5fd123
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5fd123
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5fd103
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x18]
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 + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x88]
mov byte [esp + 0xbc], 3
cmp eax, ebp
je case.default.0x5fcdba
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5fd151
cmp al, 0xff
je 0x5fd151
dec al
mov byte [ecx], al
jmp case.default.0x5fcdba
push ecx
call fcn.006a64d0
add esp, 4
jmp case.default.0x5fcdba
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x38], eax
jmp case.default.0x5fcdba
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x95
push 0xa0
push 6
call fcn.0061daa0
and al, 8
jmp 0x5fcf7f
cmp ebx, ebp
jne 0x5fd1a8
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
jmp 0x5fd1ee
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x5fd1b5
cmp eax, ebx
jae 0x5fd1ce
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
push ebx
lea ecx, [esp + 0x18]
call fcn.00414a60
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x40]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [eax + ebx], 0
mov ebp, dword [esp + 0xc4]
mov cl, byte [esp + 0x14]
mov eax, dword [esp + 0x1c]
xor edi, edi
mov byte [ebp], cl
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov esi, dword [0x6dd1fc]
mov ebx, eax
cmp esi, ebx
jae 0x5fd219
mov ebx, esi
lea edx, [esp + 0x14]
cmp ebp, edx
jne 0x5fd27b
cmp ebx, edi
jbe 0x5fd22a
call fcn.006a6707
mov ecx, ebp
call fcn.00414b70
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x5fd23c
mov esi, eax
cmp esi, edi
jbe 0x5fd26f
mov ecx, dword [ebp + 4]
sub eax, esi
add ebx, ecx
push eax
lea ecx, [esi + ebx]
push ecx
push ebx
call fcn.006a6c70
mov ebx, dword [ebp + 8]
add esp, 0xc
sub ebx, esi
mov ecx, ebp
push edi
push ebx
call fcn.00414230
test al, al
je 0x5fd26f
push ebx
mov ecx, ebp
call fcn.00414210
mov ecx, ebp
call fcn.00414b70
jmp 0x5fd302
cmp ebx, edi
jbe 0x5fd2c7
cmp ebx, eax
jne 0x5fd2c7
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5fd290
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5fd2c7
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5fd2ac
mov eax, 0x6dd1f8
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5fd302
push 1
push ebx
mov ecx, ebp
call fcn.00414230
test al, al
je 0x5fd302
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x5fd2e2
mov esi, 0x6dd1f8
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add ebx, eax
xor edi, edi
mov byte [ebx], 0
mov dword [esp + 0x3c], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0xbc], 2
call fcn.0061d8c0
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x5fd340
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5fd337
cmp al, 0xff
je 0x5fd337
dec al
mov byte [ecx], al
jmp 0x5fd340
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0xc8]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0xbc], 0
call fcn.0061d8c0
mov ecx, dword [esp + 0xb4]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xb0
ret 8