Function at 0x4c5410
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x56a186
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x250
mov al, byte [esp + 0x27]
push ebx
push ebp
push esi
mov ebp, ecx
xor ebx, ebx
push edi
push ebx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], ebx
mov byte [esp + 0x2c], bl
mov byte [esp + 0x1c], al
call fcn.00404bb0
push 6
push 0x5abd30
lea ecx, [esp + 0x38]
mov dword [esp + 0x270], 1
call fcn.005318a0
mov edi, dword [esp + 0x274]
mov al, 2
push 4
mov ecx, edi
mov byte [esp + 0x26c], al
mov byte [esp + 0x30], al
mov byte [esp + 0x31], 0x21
mov byte [esp + 0x32], bl
call fcn.00531ac0
mov cl, byte [0x5abc1c]
mov esi, dword [esp + 0x278]
cmp al, cl
jne 0x4c54a8
cmp cl, 0xff
jne 0x4c54d7
push 0xfe
lea ecx, [esp + 0x30]
push esi
push ecx
lea ecx, [ebp + 0xc]
mov byte [0x5abc1c], al
mov byte [esp + 0x3a], al
call fcn.0043c160
cmp ax, bx
je 0x4c6a6a
cmp ax, 0x7f0
je 0x4c6a6a
push 3
mov ecx, edi
call fcn.00531ac0
mov bl, al
push 4
and ebx, 0xff
mov ecx, edi
shl ebx, 8
call fcn.00531ac0
and eax, 0xff
push 5
add ebx, eax
mov ecx, edi
shl ebx, 8
call fcn.00531ac0
and eax, 0xff
add eax, ebx
cmp eax, 0x1030f
jg 0x4c5b87
je 0x4c5b62
cmp eax, 0x10308
jg 0x4c5aa0
je 0x4c5a80
cmp eax, 0x10104
jg 0x4c5a0a
je 0x4c5845
sub eax, 0x10101
je 0x4c56c6
dec eax
je 0x4c5610
dec eax
jne case.default.0x4c5ba6
mov al, byte [esi + 3]
mov bl, 2
push ecx
test bl, al
mov ecx, esp
je 0x4c55bb
mov dword [esp + 0x18], esp
push 6
push 0x5abe8c
call fcn.005318a0
lea edx, [esp + 0x204]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 9
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x204]
mov byte [esp + 0x26c], bl
call fcn.00404bb0
jmp case.default.0x4c5ba6
mov dword [esp + 0x18], esp
push 6
push 0x5abe84
call fcn.005318a0
lea edx, [esp + 0x254]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0xa
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x254]
mov byte [esp + 0x26c], bl
call fcn.00404bb0
jmp case.default.0x4c5ba6
mov al, byte [esi + 3]
push ecx
test al, 1
mov ecx, esp
je 0x4c5670
mov dword [esp + 0x18], esp
push 6
push 0x5abe8c
call fcn.005318a0
lea edx, [esp + 0x164]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 7
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x164]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
mov dword [esp + 0x18], esp
push 6
push 0x5abe84
call fcn.005318a0
lea edx, [esp + 0x84]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 8
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x84]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
mov al, byte [esi + 2]
cmp al, 0xfe
jne 0x4c5726
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe7c
call fcn.005318a0
lea edx, [esp + 0x1e4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 3
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
cmp al, 0xff
jne 0x4c5783
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe74
call fcn.005318a0
lea edx, [esp + 0xa4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 4
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0xa4]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
cmp al, 0xd
jae 0x4c57ec
add al, 0xc
lea ecx, [esp + 0x30]
push eax
push 5
call fcn.00531ad0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00531810
lea eax, [esp + 0x184]
push eax
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 5
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x184]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe6c
call fcn.005318a0
lea edx, [esp + 0xc4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 6
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0xc4]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
xor eax, eax
mov al, byte [esi + 4]
cmp eax, 3
ja case.default.0x4c5853
jmp dword [eax*4 + 0x4c6b20]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe64
call fcn.005318a0
lea edx, [esp + 0x224]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0xb
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x224]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe5c
call fcn.005318a0
lea edx, [esp + 0xe4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0xc
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0xe4]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe54
call fcn.005318a0
lea edx, [esp + 0x1a4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0xd
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe7c
call fcn.005318a0
lea edx, [esp + 0x104]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0xe
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
push 1
lea ecx, [esp + 0x104]
mov byte [esp + 0x26c], 2
call fcn.00404bb0
jmp case.default.0x4c5ba6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe6c
call fcn.005318a0
lea edx, [esp + 0x54]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0xf
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x54]
mov byte [esp + 0x268], 2
jmp 0x4c6746
sub eax, 0x10205
je 0x4c5a5f
dec eax
je 0x4c5a3f
sub eax, 0x101
jne case.default.0x4c5ba6
xor edx, edx
xor eax, eax
mov dl, byte [esi + 3]
mov al, byte [esi + 2]
shl edx, 8
add edx, eax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 4]
mov dl, byte [esi + 3]
shl ecx, 8
add ecx, edx
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor eax, eax
mov byte [esp + 0x28], 1
mov al, byte [esi + 2]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x572c30]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 5]
mov dl, byte [esi + 4]
shl ecx, 8
add ecx, edx
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
add eax, 0xfffefcf7
cmp eax, 5
ja case.default.0x4c5ba6
jmp dword [eax*4 + 0x4c6b30]
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 7]
mov cl, byte [esi + 6]
shl eax, 8
add eax, ecx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor edx, edx
xor eax, eax
mov dl, byte [esi + 9]
mov al, byte [esi + 8]
shl edx, 8
add edx, eax
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor ecx, ecx
mov cl, byte [esi + 0xa]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor edx, edx
mov dl, byte [esi + 0xb]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x574f58]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0xd]
mov cl, byte [esi + 0xc]
shl eax, 8
add eax, ecx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor edx, edx
mov byte [esp + 0x28], 1
mov dl, byte [esi + 0x11]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x10]
mov cl, byte [esi + 0xf]
shl eax, 8
add eax, ecx
mov byte [esp + 0x28], 1
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
cmp eax, 0x10610
jg 0x4c635e
je 0x4c6168
add eax, 0xfffefbed
cmp eax, 9
ja case.default.0x4c5ba6
jmp dword [eax*4 + 0x4c6b48]
mov al, byte [esi + 2]
push ecx
test al, 1
mov ecx, esp
je 0x4c5cd6
mov dword [esp + 0x18], esp
push 6
push 0x5abe8c
call fcn.005318a0
lea edx, [esp + 0x124]
push edx
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebx, ecx
mov byte [esp + 0x268], 0x20
cmp eax, ebx
jae 0x4c5bf5
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c5c29
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x124]
mov byte [esp + 0x268], 2
jmp 0x4c6746
test ebx, ebx
jbe 0x4c5c88
cmp ebx, ecx
jne 0x4c5c88
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5c3d
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4c5c88
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5c5a
mov eax, 0x572184
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 + 0x268], 2
mov byte [eax - 1], cl
mov eax, dword [esp + 0x124]
jmp 0x4c6746
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x4c5cc2
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c5ca4
mov esi, 0x572184
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.00404d50
mov eax, dword [esp + 0x124]
mov byte [esp + 0x268], 2
jmp 0x4c6746
mov dword [esp + 0x18], esp
push 6
push 0x5abe84
call fcn.005318a0
lea ecx, [esp + 0x1c4]
push ecx
call fcn.005388b0
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x57217c]
mov ebx, eax
mov byte [esp + 0x268], 0x21
cmp ecx, ebx
jae 0x4c5d11
mov ebx, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c5d45
push ecx
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x1c4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
test ebx, ebx
jbe 0x4c5da4
cmp ebx, eax
jne 0x4c5da4
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5d59
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4c5da4
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5d76
mov eax, 0x572184
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 + 0x268], 2
mov byte [eax - 1], cl
mov eax, dword [esp + 0x1c4]
jmp 0x4c6746
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x4c5de0
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c5dc0
mov esi, 0x572184
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 + 0x1c4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
mov al, byte [esi + 2]
mov bl, 2
push ecx
test bl, al
mov ecx, esp
je 0x4c5f1e
mov dword [esp + 0x18], esp
push 6
push 0x5abe8c
call fcn.005318a0
lea edx, [esp + 0x144]
push edx
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebp, ecx
mov byte [esp + 0x268], 0x22
cmp eax, ebp
jae 0x4c5e3e
mov ebp, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c5e71
push eax
push ebp
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x144]
mov byte [esp + 0x268], bl
jmp 0x4c6746
test ebp, ebp
jbe 0x4c5ecf
cmp ebp, ecx
jne 0x4c5ecf
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5e85
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4c5ecf
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5ea2
mov eax, 0x572184
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 + 0x268], bl
mov byte [eax - 1], cl
mov eax, dword [esp + 0x144]
jmp 0x4c6746
push 1
push ebp
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x4c5f0b
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c5eeb
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
mov ecx, ebp
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], ebp
mov byte [ecx + ebp], 0
mov eax, dword [esp + 0x144]
mov byte [esp + 0x268], bl
jmp 0x4c6746
mov dword [esp + 0x18], esp
push 6
push 0x5abe84
call fcn.005318a0
lea edx, [esp + 0x244]
push edx
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebp, ecx
mov byte [esp + 0x268], 0x23
cmp eax, ebp
jae 0x4c5f58
mov ebp, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c5f8b
push eax
push ebp
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x244]
mov byte [esp + 0x268], bl
jmp 0x4c6746
test ebp, ebp
jbe 0x4c5fe9
cmp ebp, ecx
jne 0x4c5fe9
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5f9f
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4c5fe9
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c5fbc
mov eax, 0x572184
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 + 0x268], bl
mov byte [eax - 1], cl
mov eax, dword [esp + 0x244]
jmp 0x4c6746
push 1
push ebp
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x4c6025
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c6005
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
mov ecx, ebp
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], ebp
mov byte [ecx + ebp], 0
mov eax, dword [esp + 0x244]
mov byte [esp + 0x268], bl
jmp 0x4c6746
xor edx, edx
xor eax, eax
mov dl, byte [esi + 4]
mov al, byte [esi + 3]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul qword [0x5733d0]
fild dword [esp + 0x10]
fmul qword [0x572c30]
mov byte [esp + 0x28], 1
faddp st(1)
fstp dword [esp + 0x10]
jmp case.default.0x4c5ba6
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 6]
mov dl, byte [esi + 5]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul qword [0x5733d0]
fild dword [esp + 0x10]
jmp 0x4c6058
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 8]
mov cl, byte [esi + 7]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul qword [0x5733d0]
fild dword [esp + 0x10]
jmp 0x4c6058
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0xa]
mov al, byte [esi + 9]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul qword [0x5733d0]
fild dword [esp + 0x10]
jmp 0x4c6058
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0xc]
mov dl, byte [esi + 0xb]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul qword [0x5733d0]
fild dword [esp + 0x10]
jmp 0x4c6058
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0xe]
mov cl, byte [esi + 0xd]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul qword [0x5733d0]
fild dword [esp + 0x10]
jmp 0x4c6058
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x10]
mov al, byte [esi + 0xf]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul qword [0x5733d0]
fild dword [esp + 0x10]
jmp 0x4c6058
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x12]
mov dl, byte [esi + 0x11]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul qword [0x5733d0]
fild dword [esp + 0x10]
jmp 0x4c6058
xor eax, eax
mov al, byte [esi + 2]
dec eax
cmp eax, 0xa
ja case.0x4c6177.5
jmp dword [eax*4 + 0x4c6b70]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe4c
call fcn.005318a0
lea eax, [esp + 0x64]
push eax
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x10
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x64]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe44
call fcn.005318a0
lea edx, [esp + 0x74]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x11
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x74]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe3c
call fcn.005318a0
lea edx, [esp + 0x94]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x12
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x94]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe34
call fcn.005318a0
lea edx, [esp + 0xb4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x13
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0xb4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe2c
call fcn.005318a0
lea edx, [esp + 0xd4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x14
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0xd4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe24
call fcn.005318a0
lea edx, [esp + 0xf4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x15
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0xf4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
sub eax, 0x10611
je 0x4c659e
dec eax
jne case.default.0x4c5ba6
xor eax, eax
mov al, byte [esi + 5]
sub eax, 0
je 0x4c654c
dec eax
je 0x4c64fa
push ecx
dec eax
mov ecx, esp
je 0x4c64ab
mov dword [esp + 0x18], esp
push 6
push 0x5abe6c
call fcn.005318a0
lea edx, [esp + 0x114]
push edx
call fcn.005388b0
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x57217c]
mov ebx, eax
mov byte [esp + 0x268], 0x1f
cmp ecx, ebx
jae 0x4c63ca
mov ebx, ecx
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x4c63fe
push ecx
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x114]
mov byte [esp + 0x268], 2
jmp 0x4c6746
test ebx, ebx
jbe 0x4c645d
cmp ebx, eax
jne 0x4c645d
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c6412
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4c645d
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4c642f
mov eax, 0x572184
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 + 0x268], 2
mov byte [eax - 1], cl
mov eax, dword [esp + 0x114]
jmp 0x4c6746
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x4c6497
mov esi, dword [esi + 4]
test esi, esi
jne 0x4c6479
mov esi, 0x572184
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.00404d50
mov eax, dword [esp + 0x114]
mov byte [esp + 0x268], 2
jmp 0x4c6746
mov dword [esp + 0x18], esp
push 6
push 0x5abe1c
call fcn.005318a0
lea ecx, [esp + 0x134]
push ecx
call fcn.005388b0
add esp, 8
mov edx, dword [0x57217c]
lea ecx, [esp + 0x18]
push edx
push 0
push eax
mov byte [esp + 0x274], 0x1e
call fcn.004049b0
mov eax, dword [esp + 0x134]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe14
call fcn.005318a0
lea eax, [esp + 0x154]
push eax
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x1d
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x154]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe0c
call fcn.005318a0
lea edx, [esp + 0x174]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x1c
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x174]
mov byte [esp + 0x268], 2
jmp 0x4c6746
xor eax, eax
mov al, byte [esi + 3]
dec eax
cmp eax, 0xa
ja case.0x4c65ad.5
jmp dword [eax*4 + 0x4c6b9c]
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe4c
call fcn.005318a0
lea edx, [esp + 0x194]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x16
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x194]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe44
call fcn.005318a0
lea edx, [esp + 0x1b4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x17
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x1b4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe3c
call fcn.005318a0
lea edx, [esp + 0x1d4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x18
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x1d4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe34
call fcn.005318a0
lea edx, [esp + 0x1f4]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x19
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x1f4]
mov byte [esp + 0x268], 2
jmp 0x4c6746
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe2c
call fcn.005318a0
lea edx, [esp + 0x214]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x1a
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x214]
mov byte [esp + 0x268], 2
test eax, eax
je case.default.0x4c5ba6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c67c7
cmp al, 0xff
je 0x4c67c7
dec al
mov byte [ecx], al
jmp case.default.0x4c5ba6
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 6
push 0x5abe24
call fcn.005318a0
lea edx, [esp + 0x234]
push edx
call fcn.005388b0
add esp, 8
mov ecx, dword [0x57217c]
mov byte [esp + 0x268], 0x1b
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.004049b0
mov eax, dword [esp + 0x234]
mov byte [esp + 0x268], 2
test eax, eax
je case.default.0x4c5ba6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4c67c7
cmp al, 0xff
je 0x4c67c7
dec al
mov byte [ecx], al
jmp case.default.0x4c5ba6
push ecx
call fcn.00556360
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4c6912
mov al, byte [esp + 0x28]
test al, al
je 0x4c685d
mov eax, dword [esp + 0x28]
and eax, 0xff
dec eax
je 0x4c684c
dec eax
je 0x4c682e
fld dword [esp + 0x10]
dec eax
je 0x4c6814
sub esp, 8
fstp qword [esp]
push str._.2f
lea edx, [esp + 0x48]
push edx
call fcn.00556aa4
add esp, 0x10
jmp 0x4c6879
sub esp, 8
lea eax, [esp + 0x44]
fstp qword [esp]
push str._.3f
push eax
call fcn.00556aa4
add esp, 0x10
jmp 0x4c6879
fld dword [esp + 0x10]
sub esp, 8
lea ecx, [esp + 0x44]
fstp qword [esp]
push str._.2f
push ecx
call fcn.00556aa4
add esp, 0x10
jmp 0x4c6879
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push str._.1f
jmp 0x4c6805
fld dword [esp + 0x10]
call fcn.00556e88
push eax
lea eax, [esp + 0x40]
push 0x59bb6c
push eax
call fcn.00556aa4
add esp, 0xc
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 0x4c6893
call fcn.0055636b
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4c68bb
mov al, byte [edi - 1]
test al, al
je 0x4c68bb
cmp al, 0xff
je 0x4c68bb
test ebx, ebx
jne 0x4c68e4
dec al
push ebx
lea ecx, [esp + 0x1c]
mov byte [edi - 1], al
call fcn.00404bb0
jmp 0x4c6912
test ebx, ebx
jne 0x4c68cc
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
jmp 0x4c6912
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x4c68d9
cmp eax, ebx
jae 0x4c68f2
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
push ebx
lea ecx, [esp + 0x1c]
call fcn.00405100
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 [eax + ebx], 0
mov ebx, dword [esp + 0x270]
mov cl, byte [esp + 0x18]
mov eax, dword [esp + 0x20]
xor edi, edi
mov byte [ebx], cl
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov esi, dword [0x57217c]
mov ebp, eax
cmp esi, ebp
jae 0x4c693c
mov ebp, esi
lea edx, [esp + 0x18]
cmp ebx, edx
jne 0x4c699f
cmp ebp, edi
jbe 0x4c694d
call fcn.00556597
mov ecx, ebx
call fcn.00405210
mov eax, dword [ebx + 8]
sub eax, ebp
cmp eax, esi
jae 0x4c695f
mov esi, eax
cmp esi, edi
jbe 0x4c6993
mov ecx, dword [ebx + 4]
sub eax, esi
add ecx, ebp
push eax
lea edx, [esi + ecx]
push edx
push ecx
call fcn.00556b00
mov edi, dword [ebx + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebx
push 0
push edi
call fcn.00404d70
test al, al
je 0x4c6993
push edi
mov ecx, ebx
call fcn.00404d50
mov ecx, ebx
call fcn.00405210
jmp 0x4c6a21
cmp ebp, edi
jbe 0x4c69eb
cmp ebp, eax
jne 0x4c69eb
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x4c69b4
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4c69eb
push 1
mov ecx, ebx
call fcn.00404bb0
mov eax, dword [esp + 0x1c]
cmp eax, edi
jne 0x4c69d0
mov eax, 0x572184
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [ebx + 4], eax
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4c6a21
push 1
push ebp
mov ecx, ebx
call fcn.00404d70
test al, al
je 0x4c6a21
mov esi, dword [esp + 0x1c]
cmp esi, edi
jne 0x4c6a06
mov esi, 0x572184
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
push ebp
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, ebx
call fcn.00404d50
lea ecx, [esp + 0x30]
mov dword [esp + 0x38], 1
mov byte [esp + 0x268], 1
call fcn.00531940
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4c6a63
mov al, byte [ecx - 1]
test al, al
je 0x4c6a59
cmp al, 0xff
je 0x4c6a59
dec al
mov byte [ecx - 1], al
mov eax, ebx
jmp 0x4c6b04
dec ecx
push ecx
call fcn.00556360
add esp, 4
mov eax, ebx
jmp 0x4c6b04
mov edi, 0x5abc10
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x1c]
push ebp
call fcn.00404d70
test al, al
je 0x4c6aae
mov edi, dword [esp + 0x1c]
mov ecx, ebp
mov eax, ecx
mov esi, 0x5abc10
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00404d50
mov esi, dword [esp + 0x270]
mov cl, byte [esp + 0x18]
push ebx
mov byte [esi], cl
mov ecx, esi
call fcn.00404bb0
mov edx, dword [0x57217c]
lea eax, [esp + 0x18]
push edx
push ebx
push eax
mov ecx, esi
call fcn.004049b0
mov dword [esp + 0x38], 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x268], 1
call fcn.00531940
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x26c], bl
call fcn.00404bb0
mov eax, esi
mov ecx, dword [esp + 0x260]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x25c
ret 0xc