Function at 0x4d09e0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x6c20ab
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.0061d780
push 6
push 0x715e00
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd0], 3
call fcn.0061d820
push 4
lea ecx, [esp + 0xd8]
mov byte [esp + 0xcc], 4
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
call fcn.0061daa0
mov bl, al
push 5
and ebx, 0xff
lea ecx, [esp + 0xd8]
shl ebx, 8
call fcn.0061daa0
and eax, 0xff
add eax, ebx
cmp eax, 0x101
jg 0x4d0e2c
je 0x4d0cd9
dec eax
cmp eax, 5
ja case.default.0x4d1601
jmp dword [eax*4 + 0x4d1c5c]
mov al, byte [esi + 0x2ea]
and eax, 3
cmp eax, 3
ja case.default.0x4d0ac5
jmp dword [eax*4 + 0x4d1c74]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1610
jmp 0x4d0b04
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1777
push eax
jmp 0x4d0b05
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1778
push ecx
jmp 0x4d0b05
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1779
push edx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x54]
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 + 0xc8], 5
cmp eax, ebx
jae 0x4d0b4d
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4d0b72
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
jmp 0x4d0bf9
test ebx, ebx
jbe 0x4d0bbf
cmp ebx, ecx
jne 0x4d0bbf
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d0b86
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d0bbf
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d0ba3
mov eax, 0x6dd1f8
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 0x4d0bf9
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x4d0bf9
mov esi, dword [esi + 4]
test esi, esi
jne 0x4d0bdb
mov esi, 0x6dd1f8
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.00414210
mov eax, dword [esp + 0x54]
mov byte [esp + 0xc8], 4
test eax, eax
je case.default.0x4d1601
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d1a1c
cmp al, 0xff
je 0x4d1a1c
dec al
mov byte [ecx], al
jmp case.default.0x4d1601
mov dl, byte [esi + 0x2eb]
lea ecx, [esp + 0x18]
push ecx
push 0x1107
and dl, 8
push 0x1108
push edx
jmp 0x4d155e
xor eax, eax
mov al, byte [esi + 0x2e8]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6de5a8]
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.006a6fa5
add esp, 0x10
jmp 0x4d1581
xor ecx, ecx
mov cl, byte [esi + 0x2ea]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6dd858]
fsub qword [0x6dda80]
jmp 0x4d0c60
xor edx, edx
mov dl, byte [esi + 0x2e8]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6dd858]
fsub qword [0x6dda80]
jmp 0x4d0c60
xor eax, eax
mov al, byte [esi + 0x2ec]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub qword [0x6dda80]
jmp 0x4d0c60
mov al, byte [esi + 0x2e8]
push ecx
test al, al
jne 0x4d0cf2
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1658
push ecx
jmp 0x4d0cfe
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1659
push edx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0xb4]
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 + 0xc8], 6
cmp eax, ebx
jae 0x4d0d49
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4d0d7d
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
mov eax, dword [esp + 0xb4]
mov byte [esp + 0xc8], 4
jmp 0x4d0c05
test ebx, ebx
jbe 0x4d0ddc
cmp ebx, ecx
jne 0x4d0ddc
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d0d91
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d0ddc
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d0dae
mov eax, 0x6dd1f8
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 0x4d0c05
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x4d0e18
mov esi, dword [esi + 4]
test esi, esi
jne 0x4d0df8
mov esi, 0x6dd1f8
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 0x4d0c05
cmp eax, 0x201
jg 0x4d1127
je 0x4d10f4
add eax, 0xfffffefe
cmp eax, 0xa
ja case.default.0x4d1601
jmp dword [eax*4 + 0x4d1c84]
mov al, byte [esi + 0x2e8]
and eax, 7
cmp eax, 4
ja case.default.0x4d0e60
jmp dword [eax*4 + 0x4d1cb0]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3155
push edx
jmp 0x4d0ebe
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x3156
push eax
jmp 0x4d0ebe
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x3157
jmp 0x4d0ebd
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3158
push edx
jmp 0x4d0ebe
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1657
push eax
jmp 0x4d0ebe
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x12ff
push ecx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0061d790
lea eax, [esp + 0xa4]
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 + 0xc8], 7
cmp eax, ebx
jae 0x4d0f09
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4d0f3d
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
mov eax, dword [esp + 0xa4]
mov byte [esp + 0xc8], 4
jmp 0x4d0c05
test ebx, ebx
jbe 0x4d0f9c
cmp ebx, ecx
jne 0x4d0f9c
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d0f51
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d0f9c
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d0f6e
mov eax, 0x6dd1f8
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 0x4d0c05
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x4d0fd8
mov esi, dword [esi + 4]
test esi, esi
jne 0x4d0fb8
mov esi, 0x6dd1f8
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 0x4d0c05
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor eax, eax
mov al, byte [esi + 0x2e8]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x4d0c5a
xor ecx, ecx
mov cl, byte [esi + 0x2e8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor eax, eax
mov al, byte [esi + 0x2ea]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor ecx, ecx
mov cl, byte [esi + 0x2eb]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor edx, edx
mov dl, byte [esi + 0x2ec]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor eax, eax
mov al, byte [esi + 0x2ed]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor ecx, ecx
mov cl, byte [esi + 0x2e8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
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 [0x6de5a0]
fild dword [esp + 0x10]
fmul qword [0x6de598]
faddp st(1)
jmp 0x4d1569
cmp eax, 0x301
jg 0x4d15e2
je 0x4d1546
add eax, 0xfffffdfe
cmp eax, 0xa
ja case.default.0x4d1601
jmp dword [eax*4 + 0x4d1cc4]
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 [0x6de590]
fild dword [esp + 0x10]
fmul qword [0x6de588]
faddp st(1)
jmp 0x4d1569
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 0x4d1569
xor edx, edx
mov dl, byte [esi + 0x2e8]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor eax, eax
mov al, byte [esi + 0x2e9]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6de580]
jmp 0x4d0c60
xor ecx, ecx
mov cl, byte [esi + 0x2e8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6dd858]
fsub qword [0x6dda80]
jmp 0x4d0c60
mov al, byte [esi + 0x2e8]
and eax, 3
cmp eax, 3
ja case.default.0x4d1205
jmp dword [eax*4 + 0x4d1cf0]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x315a
jmp 0x4d1244
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1539
push eax
jmp 0x4d1245
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315b
push ecx
jmp 0x4d1245
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1539
push edx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], 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 + 0xc8], 8
cmp eax, ebx
jae 0x4d1290
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4d12c4
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
mov eax, dword [esp + 0x84]
mov byte [esp + 0xc8], 4
jmp 0x4d0c05
test ebx, ebx
jbe 0x4d1323
cmp ebx, ecx
jne 0x4d1323
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d12d8
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d1323
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d12f5
mov eax, 0x6dd1f8
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 0x4d0c05
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x4d135f
mov esi, dword [esi + 4]
test esi, esi
jne 0x4d133f
mov esi, 0x6dd1f8
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 0x4d0c05
mov al, byte [esi + 0x2e9]
and eax, 7
cmp eax, 3
ja case.default.0x4d1381
jmp dword [eax*4 + 0x4d1d00]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x315c
jmp 0x4d13c0
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x315d
push eax
jmp 0x4d13c1
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315e
push ecx
jmp 0x4d13c1
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1539
push edx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x64]
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 + 0xc8], 9
cmp eax, ebx
jae 0x4d1409
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4d143a
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
mov eax, dword [esp + 0x64]
mov byte [esp + 0xc8], 4
jmp 0x4d0c05
test ebx, ebx
jbe 0x4d1496
cmp ebx, ecx
jne 0x4d1496
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d144e
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d1496
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d146b
mov eax, 0x6dd1f8
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 0x4d0c05
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x4d14d2
mov esi, dword [esi + 4]
test esi, esi
jne 0x4d14b2
mov esi, 0x6dd1f8
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 0x4d0c05
xor edx, edx
mov dl, byte [esi + 0x2e9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x6de160]
jmp 0x4d1569
xor eax, eax
mov al, byte [esi + 0x2e8]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x4d0c5a
mov dl, byte [esi + 0x2ec]
lea ecx, [esp + 0x18]
push ecx
push 0x1243
and dl, 0x10
push 0x1252
push edx
jmp 0x4d155e
mov cl, byte [esi + 0x2ec]
lea eax, [esp + 0x18]
push eax
push 0x1243
and cl, 0x20
push 0x1252
push ecx
jmp 0x4d155e
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.004d1d40
fld qword [esp + 0x28]
call fcn.006a7274
push eax
lea ecx, [esp + 0x40]
push 0x713498
push ecx
call fcn.006a6fa5
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4d1abb
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 0x4d15a7
call fcn.006a64db
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4d1a64
mov al, byte [edi - 1]
test al, al
je 0x4d1a64
cmp al, 0xff
je 0x4d1a64
test ebx, ebx
jne 0x4d1a8d
dec al
push ebx
lea ecx, [esp + 0x1c]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x4d1abb
cmp eax, 0x401
jg 0x4d1a2a
je 0x4d181e
add eax, 0xfffffcfe
cmp eax, 4
ja case.default.0x4d1601
jmp dword [eax*4 + 0x4d1d10]
xor eax, eax
xor ebp, ebp
mov al, byte [esi + 0x2eb]
sub eax, ebp
je 0x4d1649
sub eax, 0x7f
je 0x4d163a
dec eax
push ecx
je 0x4d162c
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1539
jmp 0x4d1655
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3155
push edx
jmp 0x4d1656
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x3159
push eax
jmp 0x4d1656
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x3157
push ecx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], 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 + 0xc8], 0xa
cmp eax, ebx
jae 0x4d169e
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4d16cf
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.004140f0
push ebp
push ebp
lea ecx, [esp + 0x20]
call fcn.004140f0
mov eax, dword [esp + 0x74]
mov byte [esp + 0xc8], 4
cmp eax, ebp
jmp 0x4d0c07
cmp ebx, ebp
jbe 0x4d1757
cmp ebx, ecx
jne 0x4d1757
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x4d16e7
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d1757
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4d1712
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d1709
cmp al, 0xff
je 0x4d1709
dec al
mov byte [ecx], al
jmp 0x4d1712
push ecx
call fcn.006a64d0
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 0x4d172a
mov eax, 0x6dd1f8
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 0x4d0c07
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x4d1791
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x4d1773
mov esi, 0x6dd1f8
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.00414210
mov eax, dword [esp + 0x74]
mov byte [esp + 0xc8], 4
cmp eax, ebp
jmp 0x4d0c07
movsx ecx, byte [esi + 0x2ed]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x6de578]
fadd qword [0x6de570]
jmp 0x4d1569
mov al, byte [esi + 0x2ec]
lea edx, [esp + 0x18]
push edx
push 0x1243
push 0x1252
and al, 0x10
jmp 0x4d155d
mov dl, byte [esi + 0x2e9]
lea ecx, [esp + 0x18]
push ecx
push 0x1243
and dl, 0x40
push 0x1252
push edx
jmp 0x4d155e
movsx eax, byte [esi + 0x2ed]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x6de578]
fadd qword [0x6de570]
jmp 0x4d1569
mov al, byte [esi + 0x2e8]
and eax, 3
cmp eax, 3
ja case.default.0x4d1830
jmp dword [eax*4 + 0x4d1d24]
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1243
push ecx
jmp 0x4d1853
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1252
push edx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
mov byte [esi + 0x34b], 0
jmp case.default.0x4d1830
push ecx
mov ecx, esi
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1305
push eax
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
mov byte [esi + 0x34b], 1
jmp case.default.0x4d1830
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315f
push ecx
mov ecx, esi
call fcn.004d1f60
lea ecx, [esp + 0x18]
call fcn.0061dab0
mov byte [esi + 0x34b], 2
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x94]
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 + 0xc8], 0xb
cmp edi, ebx
jae 0x4d18f2
mov ebx, edi
lea ecx, [esp + 0x18]
cmp ecx, esi
jne 0x4d1967
cmp dword [esp + 0x20], ebx
jae 0x4d1905
call fcn.006a6707
lea ecx, [esp + 0x18]
call fcn.00414b70
mov eax, dword [esp + 0x20]
sub eax, ebx
cmp eax, edi
jae 0x4d191a
mov edi, eax
test edi, edi
jbe 0x4d1955
mov edx, dword [esp + 0x1c]
sub eax, edi
push eax
lea ecx, [ebx + edx]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x2c]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x18]
push 0
push esi
call fcn.00414230
test al, al
je 0x4d1955
push esi
lea ecx, [esp + 0x1c]
call fcn.00414210
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.004140f0
jmp 0x4d19ee
test ebx, ebx
jbe 0x4d19b4
cmp ebx, eax
jne 0x4d19b4
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d197b
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d19b4
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4d1998
mov eax, 0x6dd1f8
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 0x4d19ee
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00414230
test al, al
je 0x4d19ee
mov esi, dword [esi + 4]
test esi, esi
jne 0x4d19d0
mov esi, 0x6dd1f8
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.00414210
mov eax, dword [esp + 0x94]
mov byte [esp + 0xc8], 4
test eax, eax
je case.default.0x4d1601
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d1a1c
cmp al, 0xff
je 0x4d1a1c
dec al
mov byte [ecx], al
jmp case.default.0x4d1601
push ecx
call fcn.006a64d0
add esp, 4
jmp case.default.0x4d1601
cmp eax, 0x402
jne case.default.0x4d1601
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 0x4d1569
test ebx, ebx
jne 0x4d1a75
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
jmp 0x4d1abb
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x4d1a82
cmp eax, ebx
jae 0x4d1a9b
push 1
lea ecx, [esp + 0x1c]
call fcn.004138c0
push ebx
lea ecx, [esp + 0x1c]
call fcn.00414a60
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 [0x6dd1fc]
mov ebx, eax
cmp esi, ebx
jae 0x4d1ae6
mov ebx, esi
lea edx, [esp + 0x18]
cmp ebp, edx
jne 0x4d1b48
cmp ebx, edi
jbe 0x4d1af7
call fcn.006a6707
mov ecx, ebp
call fcn.00414b70
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x4d1b09
mov esi, eax
cmp esi, edi
jbe 0x4d1b3c
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 0x4d1b3c
push ebx
mov ecx, ebp
call fcn.00414210
mov ecx, ebp
call fcn.00414b70
jmp 0x4d1bcf
cmp ebx, edi
jbe 0x4d1b94
cmp ebx, eax
jne 0x4d1b94
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x4d1b5d
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d1b94
push 1
mov ecx, ebp
call fcn.004138c0
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x4d1b79
mov eax, 0x6dd1f8
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 0x4d1bcf
push 1
push ebx
mov ecx, ebp
call fcn.00414230
test al, al
je 0x4d1bcf
mov esi, dword [esp + 0x1c]
cmp esi, edi
jne 0x4d1baf
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 + 0x34], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0xc8], 3
call fcn.0061d8c0
lea ecx, [esp + 0x38]
mov byte [esp + 0xc8], 2
call fcn.0061d8c0
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x4d1c1e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d1c15
cmp al, 0xff
je 0x4d1c15
dec al
mov byte [ecx], al
jmp 0x4d1c1e
push ecx
call fcn.006a64d0
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.0061d8c0
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