Function at 0x5a93d0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x6ce59d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x4c], ebp
mov al, byte [esp + 0x4b]
mov dword [esp + 0xa8], 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 + 0xb0], 2
call fcn.0061d820
push 4
lea ecx, [esp + 0xb8]
mov byte [esp + 0xac], 3
call fcn.0061daa0
push 5
lea ecx, [esp + 0xb8]
mov byte [esp + 0x28], al
call fcn.0061daa0
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x24]
and eax, 0xff
mov dword [esp + 0x2c], ebp
cmp eax, 3
ja case.default.0x5a948d
jmp dword [eax*4 + 0x5aa114]
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 6
ja case.default.0x5a948d
jmp dword [eax*4 + 0x5aa124]
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 5
call fcn.0061daa0
and eax, 0xff
lea edx, [esp + 0x38]
push eax
push str._02x_02x
push edx
call fcn.006a6fa5
add esp, 0x10
jmp 0x5a9885
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xf
cmp eax, 9
ja case.default.0x5a94de
jmp dword [eax*4 + 0x5aa140]
push 0xd5
jmp 0x5a9529
push 0xd6
jmp 0x5a9529
push 0xd7
jmp 0x5a9529
push 0xd8
jmp 0x5a9529
push 0xd9
jmp 0x5a9529
push 0xda
jmp 0x5a9529
push 0xdb
jmp 0x5a9529
push 0xdc
jmp 0x5a9529
push 0xdd
jmp 0x5a9529
push 0xde
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 + 0x54]
push eax
call fcn.0061ca80
add esp, 8
mov ecx, dword [0x6dd1fc]
mov byte [esp + 0xa8], 4
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136c0
mov eax, dword [esp + 0x54]
mov byte [esp + 0xa8], 3
cmp eax, ebp
je case.default.0x5a948d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5a9f1d
cmp al, 0xff
je 0x5a9f1d
dec al
mov byte [ecx], al
jmp case.default.0x5a948d
add esi, 8
push 0xa
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 9
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 8
call fcn.0061daa0
and eax, 0xff
lea edx, [esp + 0x3c]
push eax
push str._c_c_c
push edx
call fcn.006a6fa5
add esp, 0x14
jmp 0x5a9885
add esi, 8
push 8
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 7
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 6
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 5
call fcn.0061daa0
and eax, 0xff
push eax
push str._c_c_c_c
lea edx, [esp + 0x48]
push edx
call fcn.006a6fa5
add esp, 0x18
jmp 0x5a9885
add esi, 8
push 8
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 7
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 6
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 5
call fcn.0061daa0
and eax, 0xff
push eax
push str._02x_02x_02x_02x
jmp 0x5a962a
add esi, 8
push 5
mov ecx, esi
call fcn.0061daa0
push 6
mov ecx, esi
call fcn.0061daa0
movsx eax, al
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fstp qword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x3c]
push str._.2f
push ecx
call fcn.006a6fa5
add esp, 0x10
jmp 0x5a976d
mov edx, dword [esp + 0x30]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 6
ja case.default.0x5a948d
jmp dword [eax*4 + 0x5aa168]
add esi, 8
push 7
mov ecx, esi
call fcn.0061daa0
push 8
mov ecx, esi
call fcn.0061daa0
movsx eax, al
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5a96ab
push 9
jmp 0x5a9ae1
push 0xa
jmp 0x5a9ae1
lea eax, [esp + 0x14]
lea ecx, [esi + 8]
push eax
push 0x6a
push 0x69
push 8
call fcn.0061daa0
and al, 0x10
jmp 0x5a974e
lea ecx, [esp + 0x14]
push ecx
push 0x7f
push 0x7e
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x20
push eax
mov ecx, esi
call fcn.005ae380
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x34]
push edx
push 0x713498
push eax
call fcn.006a6fa5
add esp, 0xc
cmp dword [esp + 0x1c], ebp
jne 0x5a9f82
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x5a9791
call fcn.006a64db
mov edi, dword [esp + 0x18]
cmp edi, ebp
je 0x5a9f2b
mov al, byte [edi - 1]
test al, al
je 0x5a9f2b
cmp al, 0xff
je 0x5a9f2b
cmp ebx, ebp
jne 0x5a9f54
dec al
push ebp
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x5a9f82
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x81
push 0x80
push 8
call fcn.0061daa0
and al, 0x40
jmp 0x5a974e
mov eax, dword [esp + 0x30]
and eax, 0xff
dec eax
cmp eax, 5
ja case.default.0x5a948d
jmp dword [eax*4 + 0x5aa184]
add esi, 8
push 9
mov ecx, esi
call fcn.0061daa0
push 0xa
mov ecx, esi
call fcn.0061daa0
movsx eax, al
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5a96ab
push 5
jmp 0x5a9ae1
push 6
jmp 0x5a9ae1
push 7
jmp 0x5a9ae1
lea ecx, [esp + 0x14]
push ecx
push 0x6a
push 0x69
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x80
jmp 0x5a974e
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
lea edx, [esp + 0x34]
push eax
push str._02x
push edx
call fcn.006a6fa5
add esp, 0xc
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x18]
push ebx
call fcn.00414230
test al, al
je case.default.0x5a948d
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x34]
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
jmp case.default.0x5a948d
mov edx, dword [esp + 0x30]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 9
ja case.default.0x5a948d
jmp dword [eax*4 + 0x5aa19c]
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
cmp eax, 3
ja case.0x5a9903.3
jmp dword [eax*4 + 0x5aa1c4]
push 0xdf
jmp 0x5a9924
push pe_nt_image_headers32
jmp 0x5a9924
push 0xe1
jmp 0x5a9924
push 0xea
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 + 0x94]
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 + 0xa8], 5
cmp eax, ebx
jae 0x5a996a
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5a999c
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 + 0x94]
mov byte [esp + 0xa8], 3
jmp 0x5a9578
cmp ebx, ebp
jbe 0x5a99fb
cmp ebx, ecx
jne 0x5a99fb
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a99b0
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5a99fb
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a99cd
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 + 0xa8], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0x94]
jmp 0x5a9578
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5a9a35
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5a9a17
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 + 0x94]
mov byte [esp + 0xa8], 3
jmp 0x5a9578
lea ecx, [esp + 0x14]
push ecx
push 0x83
push 0x82
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 2
jmp 0x5a974e
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x85
push 0x84
push 7
call fcn.0061daa0
and al, 4
jmp 0x5a974e
lea eax, [esp + 0x14]
lea ecx, [esi + 8]
push eax
push 0x87
push 0x86
push 7
call fcn.0061daa0
and al, 0x10
jmp 0x5a974e
lea ecx, [esp + 0x14]
push ecx
push 0x89
push 0x88
push 7
jmp 0x5a9744
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x83
push 0x82
push 7
call fcn.0061daa0
and al, 0x80
jmp 0x5a974e
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x2c], eax
jmp case.default.0x5a948d
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
cmp eax, 6
ja case.default.0x5a9b0b
jmp dword [eax*4 + 0x5aa1d4]
push 0xe3
jmp 0x5a9b48
push 0xe4
jmp 0x5a9b48
push 0xe5
jmp 0x5a9b48
push 0xe6
jmp 0x5a9b48
push 0xe7
jmp 0x5a9b48
push 0xe8
jmp 0x5a9b48
push 0xe9
jmp 0x5a9b48
push 0xea
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 + 0x84]
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 + 0xa8], 6
cmp eax, ebx
jae 0x5a9b8e
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5a9bc0
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 + 0x84]
mov byte [esp + 0xa8], 3
jmp 0x5a9578
cmp ebx, ebp
jbe 0x5a9c1f
cmp ebx, ecx
jne 0x5a9c1f
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a9bd4
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5a9c1f
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a9bf1
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 + 0xa8], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0x84]
jmp 0x5a9578
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5a9c59
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5a9c3b
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 + 0x84]
mov byte [esp + 0xa8], 3
jmp 0x5a9578
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
cmp eax, 5
ja case.default.0x5a9c81
jmp dword [eax*4 + 0x5aa1f0]
push 0xeb
jmp 0x5a9cb7
push 0xec
jmp 0x5a9cb7
push 0xed
jmp 0x5a9cb7
push 0xee
jmp 0x5a9cb7
push 0xef
jmp 0x5a9cb7
push 0xf0
jmp 0x5a9cb7
push 0xea
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 + 0x64]
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 + 0xa8], 7
cmp eax, ebx
jae 0x5a9cfa
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5a9d29
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 + 0x64]
mov byte [esp + 0xa8], 3
jmp 0x5a9578
cmp ebx, ebp
jbe 0x5a9d85
cmp ebx, ecx
jne 0x5a9d85
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a9d3d
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5a9d85
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a9d5a
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 + 0xa8], 3
mov byte [eax - 1], cl
mov eax, dword [esp + 0x64]
jmp 0x5a9578
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5a9dbf
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5a9da1
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 + 0x64]
mov byte [esp + 0xa8], 3
jmp 0x5a9578
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 3
cmp eax, 3
ja case.default.0x5a9de2
jmp dword [eax*4 + 0x5aa208]
push 0xf1
jmp 0x5a9e03
push 0xf2
jmp 0x5a9e03
push 0xf3
jmp 0x5a9e03
push 0xea
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 + 0x74]
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 + 0xa8], 8
cmp eax, ebx
jae 0x5a9e46
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x5a9e69
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140f0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140f0
jmp 0x5a9ef2
cmp ebx, ebp
jbe 0x5a9eb6
cmp ebx, ecx
jne 0x5a9eb6
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a9e7d
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5a9eb6
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x5a9e9a
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 0x5a9ef2
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414230
test al, al
je 0x5a9ef2
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x5a9ed2
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 + 0x74]
mov byte [esp + 0xa8], 3
cmp eax, ebp
je case.default.0x5a948d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5a9f1d
cmp al, 0xff
je 0x5a9f1d
dec al
mov byte [ecx], al
jmp case.default.0x5a948d
push ecx
call fcn.006a64d0
add esp, 4
jmp case.default.0x5a948d
cmp ebx, ebp
jne 0x5a9f3c
push 1
lea ecx, [esp + 0x18]
call fcn.004138c0
jmp 0x5a9f82
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x5a9f49
cmp eax, ebx
jae 0x5a9f62
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 + 0x34]
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 + 0xb0]
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 0x5a9fad
mov ebx, esi
lea edx, [esp + 0x14]
cmp ebp, edx
jne 0x5aa014
cmp ebx, edi
jbe 0x5a9fbe
call fcn.006a6707
mov ecx, ebp
call fcn.00414b70
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x5a9fd0
mov esi, eax
cmp esi, edi
jbe 0x5aa006
mov ecx, dword [ebp + 4]
sub eax, esi
add ecx, ebx
push eax
lea edx, [esi + ecx]
push edx
push ecx
call fcn.006a6c70
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push 0
push edi
call fcn.00414230
test al, al
je 0x5aa004
push edi
mov ecx, ebp
call fcn.00414210
xor edi, edi
push edi
push edi
mov ecx, ebp
call fcn.004140f0
jmp 0x5aa098
cmp ebx, edi
jbe 0x5aa060
cmp ebx, eax
jne 0x5aa060
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5aa029
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x5aa060
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5aa045
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 0x5aa098
push 1
push ebx
mov ecx, ebp
call fcn.00414230
test al, al
je 0x5aa098
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x5aa07b
mov esi, 0x6dd1f8
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.00414210
xor edi, edi
mov dword [esp + 0x4c], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0xa8], 2
call fcn.0061d8c0
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x5aa0d6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5aa0cd
cmp al, 0xff
je 0x5aa0cd
dec al
mov byte [ecx], al
jmp 0x5aa0d6
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0xb4]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0xa8], 0
call fcn.0061d8c0
mov ecx, dword [esp + 0xa0]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x9c
ret 8