Function at 0x4c3180
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x6b283b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebx
push ebp
xor eax, eax
push esi
push edi
mov esi, ecx
mov dword [esp + 0x34], eax
mov cl, byte [esp + 0x33]
mov dword [esp + 0xc8], 1
mov byte [esp + 0x18], cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x38]
mov byte [esp + 0xc8], 2
call fcn.0060fe70
push 6
push 0x705c74
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd0], 3
call fcn.0060ff10
push 4
lea ecx, [esp + 0xd8]
mov byte [esp + 0xcc], 4
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
call fcn.00610190
mov bl, al
push 5
and ebx, 0xff
lea ecx, [esp + 0xd8]
shl ebx, 8
call fcn.00610190
and eax, 0xff
add eax, ebx
cmp eax, 0x101
jg 0x4c35cc
je 0x4c3479
dec eax
cmp eax, 5
ja case.default.0x4c3da1
jmp dword [eax*4 + 0x4c43fc]
mov al, byte [esi + 0x2ea]
and eax, 3
cmp eax, 3
ja case.default.0x4c3265
jmp dword [eax*4 + 0x4c4414]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1610
jmp 0x4c32a4
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1777
push eax
jmp 0x4c32a5
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1778
push ecx
jmp 0x4c32a5
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1779
push edx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x54]
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 + 0xc8], 5
cmp eax, ebx
jae 0x4c32ed
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c3312
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x4c3399
test ebx, ebx
jbe 0x4c335f
cmp ebx, ecx
jne 0x4c335f
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c3326
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c335f
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c3343
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 0x4c3399
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x4c3399
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c337b
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 + 0x54]
mov byte [esp + 0xc8], 4
test eax, eax
je case.default.0x4c3da1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c41bc
cmp al, 0xff
je 0x4c41bc
dec al
mov byte [ecx], al
jmp case.default.0x4c3da1
mov dl, byte [esi + 0x2eb]
lea ecx, [esp + 0x18]
push ecx
push 0x1107
and dl, 8
push 0x1108
push edx
jmp 0x4c3cfe
xor eax, eax
mov al, byte [esi + 0x2e8]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6cf578]
fstp qword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
lea eax, [esp + 0x44]
push str._.2f
push eax
call fcn.00698355
add esp, 0x10
jmp 0x4c3d21
xor ecx, ecx
mov cl, byte [esi + 0x2ea]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6ce828]
fsub qword [0x6cea50]
jmp 0x4c3400
xor edx, edx
mov dl, byte [esi + 0x2e8]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6ce828]
fsub qword [0x6cea50]
jmp 0x4c3400
xor eax, eax
mov al, byte [esi + 0x2ec]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub qword [0x6cea50]
jmp 0x4c3400
mov al, byte [esi + 0x2e8]
push ecx
test al, al
jne 0x4c3492
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1658
push ecx
jmp 0x4c349e
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1659
push edx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0xb4]
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 + 0xc8], 6
cmp eax, ebx
jae 0x4c34e9
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c351d
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140d0
mov eax, dword [esp + 0xb4]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
test ebx, ebx
jbe 0x4c357c
cmp ebx, ecx
jne 0x4c357c
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c3531
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c357c
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c354e
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 [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0xb4]
jmp 0x4c33a5
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x4c35b8
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c3598
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 [ebx + ecx], 0
mov eax, dword [esp + 0xb4]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
cmp eax, 0x201
jg 0x4c38c7
je 0x4c3894
add eax, 0xfffffefe
cmp eax, 0xa
ja case.default.0x4c3da1
jmp dword [eax*4 + 0x4c4424]
mov al, byte [esi + 0x2e8]
and eax, 7
cmp eax, 4
ja case.default.0x4c3600
jmp dword [eax*4 + 0x4c4450]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3155
push edx
jmp 0x4c365e
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x3156
push eax
jmp 0x4c365e
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x3157
jmp 0x4c365d
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3158
push edx
jmp 0x4c365e
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1657
push eax
jmp 0x4c365e
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x12ff
push ecx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xa4]
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 + 0xc8], 7
cmp eax, ebx
jae 0x4c36a9
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c36dd
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140d0
mov eax, dword [esp + 0xa4]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
test ebx, ebx
jbe 0x4c373c
cmp ebx, ecx
jne 0x4c373c
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c36f1
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c373c
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c370e
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 [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0xa4]
jmp 0x4c33a5
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x4c3778
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c3758
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 [ebx + ecx], 0
mov eax, dword [esp + 0xa4]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor eax, eax
mov al, byte [esi + 0x2e8]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x4c33fa
xor ecx, ecx
mov cl, byte [esi + 0x2e8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor eax, eax
mov al, byte [esi + 0x2ea]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor ecx, ecx
mov cl, byte [esi + 0x2eb]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor edx, edx
mov dl, byte [esi + 0x2ec]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor eax, eax
mov al, byte [esi + 0x2ed]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor ecx, ecx
mov cl, byte [esi + 0x2e8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x2ea]
mov cl, byte [esi + 0x2eb]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul qword [0x6cf570]
fild dword [esp + 0x10]
fmul qword [0x6cf568]
faddp st(1)
jmp 0x4c3d09
cmp eax, 0x301
jg 0x4c3d82
je 0x4c3ce6
add eax, 0xfffffdfe
cmp eax, 0xa
ja case.default.0x4c3da1
jmp dword [eax*4 + 0x4c4464]
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x2e9]
mov al, byte [esi + 0x2e8]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul qword [0x6cf560]
fild dword [esp + 0x10]
fmul qword [0x6cf558]
faddp st(1)
jmp 0x4c3d09
xor eax, eax
mov al, byte [esi + 0x2ed]
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 1
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
jmp 0x4c3d09
xor edx, edx
mov dl, byte [esi + 0x2e8]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor eax, eax
mov al, byte [esi + 0x2e9]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6cf550]
jmp 0x4c3400
xor ecx, ecx
mov cl, byte [esi + 0x2e8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6ce828]
fsub qword [0x6cea50]
jmp 0x4c3400
mov al, byte [esi + 0x2e8]
and eax, 3
cmp eax, 3
ja case.default.0x4c39a5
jmp dword [eax*4 + 0x4c4490]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x315a
jmp 0x4c39e4
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1539
push eax
jmp 0x4c39e5
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315b
push ecx
jmp 0x4c39e5
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1539
push edx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], 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 + 0xc8], 8
cmp eax, ebx
jae 0x4c3a30
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c3a64
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140d0
mov eax, dword [esp + 0x84]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
test ebx, ebx
jbe 0x4c3ac3
cmp ebx, ecx
jne 0x4c3ac3
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c3a78
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c3ac3
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c3a95
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 [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x84]
jmp 0x4c33a5
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x4c3aff
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c3adf
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 [ebx + ecx], 0
mov eax, dword [esp + 0x84]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
mov al, byte [esi + 0x2e9]
and eax, 7
cmp eax, 3
ja case.default.0x4c3b21
jmp dword [eax*4 + 0x4c44a0]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x315c
jmp 0x4c3b60
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x315d
push eax
jmp 0x4c3b61
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315e
push ecx
jmp 0x4c3b61
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1539
push edx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0x64]
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 + 0xc8], 9
cmp eax, ebx
jae 0x4c3ba9
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c3bda
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140d0
mov eax, dword [esp + 0x64]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
test ebx, ebx
jbe 0x4c3c36
cmp ebx, ecx
jne 0x4c3c36
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c3bee
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c3c36
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c3c0b
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 [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x64]
jmp 0x4c33a5
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x4c3c72
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c3c52
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 [ebx + ecx], 0
mov eax, dword [esp + 0x64]
mov byte [esp + 0xc8], 4
jmp 0x4c33a5
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6cf130]
jmp 0x4c3d09
xor eax, eax
mov al, byte [esi + 0x2e8]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x4c33fa
mov dl, byte [esi + 0x2ec]
lea ecx, [esp + 0x18]
push ecx
push 0x1243
and dl, 0x10
push 0x1252
push edx
jmp 0x4c3cfe
mov cl, byte [esi + 0x2ec]
lea eax, [esp + 0x18]
push eax
push 0x1243
and cl, 0x20
push 0x1252
push ecx
jmp 0x4c3cfe
mov al, byte [esi + 0x2e9]
lea edx, [esp + 0x18]
push edx
push 0x1243
push 0x1252
and al, 0x80
push eax
mov ecx, esi
call fcn.004c44e0
fld qword [esp + 0x28]
call fcn.00698624
push eax
lea ecx, [esp + 0x40]
push 0x703498
push ecx
call fcn.00698355
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4c425b
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x4c3d47
call fcn.0069788b
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4c4204
mov al, byte [edi - 1]
test al, al
je 0x4c4204
cmp al, 0xff
je 0x4c4204
test ebx, ebx
jne 0x4c422d
dec al
push ebx
lea ecx, [esp + 0x1c]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x4c425b
cmp eax, 0x401
jg 0x4c41ca
je 0x4c3fbe
add eax, 0xfffffcfe
cmp eax, 4
ja case.default.0x4c3da1
jmp dword [eax*4 + 0x4c44b0]
xor eax, eax
xor ebp, ebp
mov al, byte [esi + 0x2eb]
sub eax, ebp
je 0x4c3de9
sub eax, 0x7f
je 0x4c3dda
dec eax
push ecx
je 0x4c3dcc
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1539
jmp 0x4c3df5
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3155
push edx
jmp 0x4c3df6
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x3159
push eax
jmp 0x4c3df6
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x3157
push ecx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], 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 + 0xc8], 0xa
cmp eax, ebx
jae 0x4c3e3e
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c3e6f
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140d0
push ebp
push ebp
lea ecx, [esp + 0x20]
call fcn.004140d0
mov eax, dword [esp + 0x74]
mov byte [esp + 0xc8], 4
cmp eax, ebp
jmp 0x4c33a7
cmp ebx, ebp
jbe 0x4c3ef7
cmp ebx, ecx
jne 0x4c3ef7
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x4c3e87
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c3ef7
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4c3eb2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c3ea9
cmp al, 0xff
je 0x4c3ea9
dec al
mov byte [ecx], al
jmp 0x4c3eb2
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 0x4c3eca
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 [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x74]
cmp eax, ebp
jmp 0x4c33a7
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x4c3f31
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x4c3f13
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 + 0x74]
mov byte [esp + 0xc8], 4
cmp eax, ebp
jmp 0x4c33a7
movsx ecx, byte [esi + 0x2ed]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6cf548]
fadd qword [0x6cf540]
jmp 0x4c3d09
mov al, byte [esi + 0x2ec]
lea edx, [esp + 0x18]
push edx
push 0x1243
push 0x1252
and al, 0x10
jmp 0x4c3cfd
mov dl, byte [esi + 0x2e9]
lea ecx, [esp + 0x18]
push ecx
push 0x1243
and dl, 0x40
push 0x1252
push edx
jmp 0x4c3cfe
movsx eax, byte [esi + 0x2ed]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6cf548]
fadd qword [0x6cf540]
jmp 0x4c3d09
mov al, byte [esi + 0x2e8]
and eax, 3
cmp eax, 3
ja case.default.0x4c3fd0
jmp dword [eax*4 + 0x4c44c4]
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1243
push ecx
jmp 0x4c3ff3
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1252
push edx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
mov byte [esi + 0x34b], 0
jmp case.default.0x4c3fd0
push ecx
mov ecx, esi
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1305
push eax
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
mov byte [esi + 0x34b], 1
jmp case.default.0x4c3fd0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315f
push ecx
mov ecx, esi
call fcn.004c4700
lea ecx, [esp + 0x18]
call fcn.006101a0
mov byte [esi + 0x34b], 2
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x94]
push eax
call fcn.0060f170
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6ce1fc]
mov ebx, eax
mov byte [esp + 0xc8], 0xb
cmp edi, ebx
jae 0x4c4092
mov ebx, edi
lea ecx, [esp + 0x18]
cmp ecx, esi
jne 0x4c4107
cmp dword [esp + 0x20], ebx
jae 0x4c40a5
call fcn.00697ab7
lea ecx, [esp + 0x18]
call fcn.00414980
mov eax, dword [esp + 0x20]
sub eax, ebx
cmp eax, edi
jae 0x4c40ba
mov edi, eax
test edi, edi
jbe 0x4c40f5
mov edx, dword [esp + 0x1c]
sub eax, edi
push eax
lea ecx, [ebx + edx]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.00698020
mov esi, dword [esp + 0x2c]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x18]
push 0
push esi
call fcn.00414210
test al, al
je 0x4c40f5
push esi
lea ecx, [esp + 0x1c]
call fcn.004141f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140d0
jmp 0x4c418e
test ebx, ebx
jbe 0x4c4154
cmp ebx, eax
jne 0x4c4154
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c411b
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c4154
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c4138
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 0x4c418e
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414210
test al, al
je 0x4c418e
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c4170
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 + 0x94]
mov byte [esp + 0xc8], 4
test eax, eax
je case.default.0x4c3da1
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c41bc
cmp al, 0xff
je 0x4c41bc
dec al
mov byte [ecx], al
jmp case.default.0x4c3da1
push ecx
call fcn.00697880
add esp, 4
jmp case.default.0x4c3da1
cmp eax, 0x402
jne case.default.0x4c3da1
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x2e8]
mov dl, byte [esi + 0x2e9]
shl ecx, 8
add ecx, edx
xor eax, eax
mov al, byte [esi + 0x2ea]
shl ecx, 8
add ecx, eax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
jmp 0x4c3d09
test ebx, ebx
jne 0x4c4215
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
jmp 0x4c425b
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x4c4222
cmp eax, ebx
jae 0x4c423b
push 1
lea ecx, [esp + 0x1c]
call fcn.004138a0
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414870
mov edi, dword [esp + 0x1c]
mov ecx, ebx
lea esi, [esp + 0x3c]
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 + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + eax], 0
mov ebp, dword [esp + 0xd0]
mov cl, byte [esp + 0x18]
mov eax, dword [esp + 0x20]
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 0x4c4286
mov ebx, esi
lea edx, [esp + 0x18]
cmp ebp, edx
jne 0x4c42e8
cmp ebx, edi
jbe 0x4c4297
call fcn.00697ab7
mov ecx, ebp
call fcn.00414980
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x4c42a9
mov esi, eax
cmp esi, edi
jbe 0x4c42dc
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 0x4c42dc
push ebx
mov ecx, ebp
call fcn.004141f0
mov ecx, ebp
call fcn.00414980
jmp 0x4c436f
cmp ebx, edi
jbe 0x4c4334
cmp ebx, eax
jne 0x4c4334
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x4c42fd
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x4c4334
push 1
mov ecx, ebp
call fcn.004138a0
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x4c4319
mov eax, 0x6ce1f8
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
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 0x4c436f
push 1
push ebx
mov ecx, ebp
call fcn.00414210
test al, al
je 0x4c436f
mov esi, dword [esp + 0x1c]
cmp esi, edi
jne 0x4c434f
mov esi, 0x6ce1f8
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 + 0x34], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0xc8], 3
call fcn.0060ffb0
lea ecx, [esp + 0x38]
mov byte [esp + 0xc8], 2
call fcn.0060ffb0
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x4c43be
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c43b5
cmp al, 0xff
je 0x4c43b5
dec al
mov byte [ecx], al
jmp 0x4c43be
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0xd4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0xc8], 0
call fcn.0060ffb0
mov ecx, dword [esp + 0xc0]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xbc
ret 8