Function at 0x59bbb0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x6bed0d
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 0x704698
lea ecx, [esp + 0x18]
mov byte [esp + 0xb0], 2
call fcn.0060ff10
push 4
lea ecx, [esp + 0xb8]
mov byte [esp + 0xac], 3
call fcn.00610190
push 5
lea ecx, [esp + 0xb8]
mov byte [esp + 0x28], al
call fcn.00610190
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x24]
and eax, 0xff
mov dword [esp + 0x2c], ebp
cmp eax, 3
ja case.default.0x59bc6d
jmp dword [eax*4 + 0x59c8f4]
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 6
ja case.default.0x59bc6d
jmp dword [eax*4 + 0x59c904]
add esi, 8
push 6
mov ecx, esi
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 5
call fcn.00610190
and eax, 0xff
lea edx, [esp + 0x38]
push eax
push str._02x_02x
push edx
call fcn.00698355
add esp, 0x10
jmp 0x59c065
push 7
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xf
cmp eax, 9
ja case.default.0x59bcbe
jmp dword [eax*4 + 0x59c920]
push 0xd5
jmp 0x59bd09
push 0xd6
jmp 0x59bd09
push 0xd7
jmp 0x59bd09
push 0xd8
jmp 0x59bd09
push 0xd9
jmp 0x59bd09
push 0xda
jmp 0x59bd09
push 0xdb
jmp 0x59bd09
push 0xdc
jmp 0x59bd09
push 0xdd
jmp 0x59bd09
push 0xde
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x54]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xa8], 4
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0x54]
mov byte [esp + 0xa8], 3
cmp eax, ebp
je case.default.0x59bc6d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x59c6fd
cmp al, 0xff
je 0x59c6fd
dec al
mov byte [ecx], al
jmp case.default.0x59bc6d
add esi, 8
push 0xa
mov ecx, esi
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 9
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 8
call fcn.00610190
and eax, 0xff
lea edx, [esp + 0x3c]
push eax
push str._c_c_c
push edx
call fcn.00698355
add esp, 0x14
jmp 0x59c065
add esi, 8
push 8
mov ecx, esi
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 7
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 6
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 5
call fcn.00610190
and eax, 0xff
push eax
push str._c_c_c_c
lea edx, [esp + 0x48]
push edx
call fcn.00698355
add esp, 0x18
jmp 0x59c065
add esi, 8
push 8
mov ecx, esi
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 7
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 6
call fcn.00610190
and eax, 0xff
mov ecx, esi
push eax
push 5
call fcn.00610190
and eax, 0xff
push eax
push str._02x_02x_02x_02x
jmp 0x59be0a
add esi, 8
push 5
mov ecx, esi
call fcn.00610190
push 6
mov ecx, esi
call fcn.00610190
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.00698355
add esp, 0x10
jmp 0x59bf4d
mov edx, dword [esp + 0x30]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 6
ja case.default.0x59bc6d
jmp dword [eax*4 + 0x59c948]
add esi, 8
push 7
mov ecx, esi
call fcn.00610190
push 8
mov ecx, esi
call fcn.00610190
movsx eax, al
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x59be8b
push 9
jmp 0x59c2c1
push 0xa
jmp 0x59c2c1
lea eax, [esp + 0x14]
lea ecx, [esi + 8]
push eax
push 0x6a
push 0x69
push 8
call fcn.00610190
and al, 0x10
jmp 0x59bf2e
lea ecx, [esp + 0x14]
push ecx
push 0x7f
push 0x7e
push 8
lea ecx, [esi + 8]
call fcn.00610190
and al, 0x20
push eax
mov ecx, esi
call fcn.005a0b60
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x34]
push edx
push 0x703498
push eax
call fcn.00698355
add esp, 0xc
cmp dword [esp + 0x1c], ebp
jne 0x59c762
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 0x59bf71
call fcn.0069788b
mov edi, dword [esp + 0x18]
cmp edi, ebp
je 0x59c70b
mov al, byte [edi - 1]
test al, al
je 0x59c70b
cmp al, 0xff
je 0x59c70b
cmp ebx, ebp
jne 0x59c734
dec al
push ebp
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x59c762
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x81
push 0x80
push 8
call fcn.00610190
and al, 0x40
jmp 0x59bf2e
mov eax, dword [esp + 0x30]
and eax, 0xff
dec eax
cmp eax, 5
ja case.default.0x59bc6d
jmp dword [eax*4 + 0x59c964]
add esi, 8
push 9
mov ecx, esi
call fcn.00610190
push 0xa
mov ecx, esi
call fcn.00610190
movsx eax, al
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x59be8b
push 5
jmp 0x59c2c1
push 6
jmp 0x59c2c1
push 7
jmp 0x59c2c1
lea ecx, [esp + 0x14]
push ecx
push 0x6a
push 0x69
push 8
lea ecx, [esi + 8]
call fcn.00610190
and al, 0x80
jmp 0x59bf2e
push 5
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
lea edx, [esp + 0x34]
push eax
push str._02x
push edx
call fcn.00698355
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.00414210
test al, al
je case.default.0x59bc6d
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.0x59bc6d
mov edx, dword [esp + 0x30]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 9
ja case.default.0x59bc6d
jmp dword [eax*4 + 0x59c97c]
push 7
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
cmp eax, 3
ja case.0x59c0e3.3
jmp dword [eax*4 + 0x59c9a4]
push 0xdf
jmp 0x59c104
push pe_nt_image_headers32
jmp 0x59c104
push 0xe1
jmp 0x59c104
push 0xea
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x94]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6ce1fc]
mov ebx, ecx
mov byte [esp + 0xa8], 5
cmp eax, ebx
jae 0x59c14a
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x59c17c
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
mov eax, dword [esp + 0x94]
mov byte [esp + 0xa8], 3
jmp 0x59bd58
cmp ebx, ebp
jbe 0x59c1db
cmp ebx, ecx
jne 0x59c1db
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c190
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x59c1db
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c1ad
mov eax, 0x6ce1f8
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 0x59bd58
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x59c215
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x59c1f7
mov esi, 0x6ce1f8
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.004141f0
mov eax, dword [esp + 0x94]
mov byte [esp + 0xa8], 3
jmp 0x59bd58
lea ecx, [esp + 0x14]
push ecx
push 0x83
push 0x82
push 7
lea ecx, [esi + 8]
call fcn.00610190
and al, 2
jmp 0x59bf2e
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x85
push 0x84
push 7
call fcn.00610190
and al, 4
jmp 0x59bf2e
lea eax, [esp + 0x14]
lea ecx, [esi + 8]
push eax
push 0x87
push 0x86
push 7
call fcn.00610190
and al, 0x10
jmp 0x59bf2e
lea ecx, [esp + 0x14]
push ecx
push 0x89
push 0x88
push 7
jmp 0x59bf24
lea edx, [esp + 0x14]
lea ecx, [esi + 8]
push edx
push 0x83
push 0x82
push 7
call fcn.00610190
and al, 0x80
jmp 0x59bf2e
push 8
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
mov dword [esp + 0x2c], eax
jmp case.default.0x59bc6d
push 9
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
cmp eax, 6
ja case.default.0x59c2eb
jmp dword [eax*4 + 0x59c9b4]
push 0xe3
jmp 0x59c328
push 0xe4
jmp 0x59c328
push 0xe5
jmp 0x59c328
push 0xe6
jmp 0x59c328
push 0xe7
jmp 0x59c328
push 0xe8
jmp 0x59c328
push 0xe9
jmp 0x59c328
push 0xea
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x84]
push ecx
call fcn.0060f170
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6ce1fc]
mov ebx, ecx
mov byte [esp + 0xa8], 6
cmp eax, ebx
jae 0x59c36e
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x59c3a0
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
mov eax, dword [esp + 0x84]
mov byte [esp + 0xa8], 3
jmp 0x59bd58
cmp ebx, ebp
jbe 0x59c3ff
cmp ebx, ecx
jne 0x59c3ff
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c3b4
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x59c3ff
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c3d1
mov eax, 0x6ce1f8
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 0x59bd58
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x59c439
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x59c41b
mov esi, 0x6ce1f8
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.004141f0
mov eax, dword [esp + 0x84]
mov byte [esp + 0xa8], 3
jmp 0x59bd58
push 0xa
lea ecx, [esi + 8]
call fcn.00610190
and eax, 0xff
cmp eax, 5
ja case.default.0x59c461
jmp dword [eax*4 + 0x59c9d0]
push 0xeb
jmp 0x59c497
push 0xec
jmp 0x59c497
push 0xed
jmp 0x59c497
push 0xee
jmp 0x59c497
push 0xef
jmp 0x59c497
push 0xf0
jmp 0x59c497
push 0xea
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x64]
push eax
call fcn.0060f170
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6ce1fc]
mov ebx, ecx
mov byte [esp + 0xa8], 7
cmp eax, ebx
jae 0x59c4da
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x59c509
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
mov eax, dword [esp + 0x64]
mov byte [esp + 0xa8], 3
jmp 0x59bd58
cmp ebx, ebp
jbe 0x59c565
cmp ebx, ecx
jne 0x59c565
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c51d
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x59c565
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c53a
mov eax, 0x6ce1f8
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 0x59bd58
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x59c59f
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x59c581
mov esi, 0x6ce1f8
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.004141f0
mov eax, dword [esp + 0x64]
mov byte [esp + 0xa8], 3
jmp 0x59bd58
push 5
lea ecx, [esi + 8]
call fcn.00610190
and eax, 3
cmp eax, 3
ja case.default.0x59c5c2
jmp dword [eax*4 + 0x59c9e8]
push 0xf1
jmp 0x59c5e3
push 0xf2
jmp 0x59c5e3
push 0xf3
jmp 0x59c5e3
push 0xea
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x74]
push eax
call fcn.0060f170
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6ce1fc]
mov ebx, ecx
mov byte [esp + 0xa8], 8
cmp eax, ebx
jae 0x59c626
mov ebx, eax
lea edx, [esp + 0x14]
cmp edx, esi
jne 0x59c649
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x1c]
call fcn.004140d0
jmp 0x59c6d2
cmp ebx, ebp
jbe 0x59c696
cmp ebx, ecx
jne 0x59c696
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c65d
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x59c696
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x59c67a
mov eax, 0x6ce1f8
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 0x59c6d2
push 1
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414210
test al, al
je 0x59c6d2
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x59c6b2
mov esi, 0x6ce1f8
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.0x59bc6d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x59c6fd
cmp al, 0xff
je 0x59c6fd
dec al
mov byte [ecx], al
jmp case.default.0x59bc6d
push ecx
call fcn.00697880
add esp, 4
jmp case.default.0x59bc6d
cmp ebx, ebp
jne 0x59c71c
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
jmp 0x59c762
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x59c729
cmp eax, ebx
jae 0x59c742
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
push ebx
lea ecx, [esp + 0x18]
call fcn.00414870
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 [0x6ce1fc]
mov ebx, eax
cmp esi, ebx
jae 0x59c78d
mov ebx, esi
lea edx, [esp + 0x14]
cmp ebp, edx
jne 0x59c7f4
cmp ebx, edi
jbe 0x59c79e
call fcn.00697ab7
mov ecx, ebp
call fcn.00414980
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x59c7b0
mov esi, eax
cmp esi, edi
jbe 0x59c7e6
mov ecx, dword [ebp + 4]
sub eax, esi
add ecx, ebx
push eax
lea edx, [esi + ecx]
push edx
push ecx
call fcn.00698020
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push 0
push edi
call fcn.00414210
test al, al
je 0x59c7e4
push edi
mov ecx, ebp
call fcn.004141f0
xor edi, edi
push edi
push edi
mov ecx, ebp
call fcn.004140d0
jmp 0x59c878
cmp ebx, edi
jbe 0x59c840
cmp ebx, eax
jne 0x59c840
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x59c809
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x59c840
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x59c825
mov eax, 0x6ce1f8
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 0x59c878
push 1
push ebx
mov ecx, ebp
call fcn.00414210
test al, al
je 0x59c878
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x59c85b
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
mov dword [esp + 0x4c], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0xa8], 2
call fcn.0060ffb0
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x59c8b6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x59c8ad
cmp al, 0xff
je 0x59c8ad
dec al
mov byte [ecx], al
jmp 0x59c8b6
push ecx
call fcn.00697880
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.0060ffb0
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