Function at 0x488e9f
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x7338
call fcn.004dc850
push ebx
push esi
push edi
mov edi, 0x58c
xor ebx, ebx
push edi
lea eax, [ebp - 0x3fa8]
push ebx
push eax
mov dword [ebp - 0x68], 0x10
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xb8], 1
call fcn.004d9ad0
push edi
lea eax, [ebp - 0x2978]
push ebx
push eax
call fcn.004d9ad0
push edi
lea eax, [ebp - 0x23ec]
push ebx
push eax
call fcn.004d9ad0
push edi
lea eax, [ebp - 0x4ac0]
push ebx
push eax
call fcn.004d9ad0
push edi
lea eax, [ebp - 0x4534]
push ebx
push eax
call fcn.004d9ad0
push edi
lea eax, [ebp - 0x3a1c]
push ebx
push eax
call fcn.004d9ad0
add esp, 0x48
lea eax, [ebp - 0x504c]
push edi
push ebx
push eax
call fcn.004d9ad0
push edi
lea eax, [ebp - 0x2f04]
push ebx
push eax
call fcn.004d9ad0
push edi
lea eax, [ebp - 0x3490]
push ebx
push eax
call fcn.004d9ad0
push 0xc
lea eax, [ebp - 0x54]
push ebx
push eax
call fcn.004d9ad0
push 0x1d9
lea eax, [ebp - 0x66c]
push ebx
push eax
mov byte [ebp - 0x54], 0x30
call fcn.004d9ad0
mov esi, dword [ebp + 8]
push esi
call fcn.00495efa
add esp, 0x40
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1c]
push 0xc
push 0x51c18c
push eax
call fcn.0043f6c3
add esp, 0xc
call fcn.0043aba1
mov ecx, dword [ebp + 0x20]
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
sub eax, ebx
je 0x489022
dec eax
je 0x48900f
dec eax
je 0x489022
dec eax
je 0x488fde
dec eax
jne 0x48900f
push esi
call fcn.004a4d3e
pop ecx
cmp eax, 1
push 4
pop edi
jne 0x488fd7
push 7
push 0x2a6
push dword [0x53f574]
push edi
call fcn.0043ed15
add esp, 0x10
mov eax, dword [ebp + 0x1c]
mov dword [eax], edi
jmp 0x489005
push esi
call fcn.0049845c
test eax, eax
pop ecx
je 0x489000
push 6
push 0x29b
push dword [0x53f574]
push 4
call fcn.0043ed15
add esp, 0x10
mov eax, dword [ebp + 0x1c]
mov dword [eax], ebx
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
jmp 0x48b4f2
mov eax, dword [ebp + 0x14]
mov dword [eax], esi
mov eax, dword [ebp + 0x1c]
mov dword [eax], 4
jmp 0x48b4f2
mov eax, dword [ebp + 0x14]
push dword [ebp + 0xc]
mov dword [eax], esi
mov eax, dword [ebp + 0x1c]
mov dword [eax], 1
call fcn.004d9400
test eax, eax
pop ecx
jne 0x489085
push 8
push 0x2b5
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.null_message_received
push str.error
push str.App_ID_not_decoded
push 3
push 0x51bdb4
call fcn.004523f7
mov esi, eax
add esp, 0x24
cmp esi, ebx
jne 0x48b4c3
push 0x26
push 0x2b7
jmp 0x48b4ac
cmp dword [ebp - 4], 1
push dword [ebp + 0xc]
jne 0x489095
call fcn.004a4cd3
jmp 0x48909a
call fcn.00451d4e
cmp eax, ebx
pop ecx
mov dword [ebp + 0x10], eax
je 0x48b468
push eax
call fcn.004d9400
test eax, eax
pop ecx
je 0x48b468
push 0xc8
call fcn.0043e8d8
push edi
mov dword [ebp + 0x20], eax
call fcn.0043e8d8
cmp dword [ebp + 0x20], ebx
pop ecx
mov esi, eax
pop ecx
mov dword [ebp + 0xc], esi
je 0x48b38e
cmp esi, ebx
je 0x48b382
lea eax, [ebp - 0x3490]
mov esi, 0x51bdb4
push eax
lea eax, [ebp - 0x2f04]
push eax
lea eax, [ebp - 0x504c]
push eax
lea eax, [ebp - 0x3a1c]
push eax
lea eax, [ebp - 0x4534]
push eax
lea eax, [ebp - 0x4ac0]
push eax
lea eax, [ebp - 0x23ec]
push eax
lea eax, [ebp - 0x2978]
push eax
lea eax, [ebp - 0x3fa8]
push eax
push dword [ebp + 0x10]
push 9
push esi
call fcn.00451bd0
add esp, 0x30
test eax, eax
je 0x48925e
cmp byte [ebp - 0x23ec], 0
je 0x48921d
lea eax, [ebp - 0x23ec]
push str.BAT_REN_KEY
push eax
call fcn.004dd6c0
pop ecx
test eax, eax
pop ecx
jne 0x48921d
lea eax, [ebp - 0x3490]
push eax
lea eax, [ebp - 0x2f04]
push eax
lea eax, [ebp - 0x504c]
push eax
lea eax, [ebp - 0x3a1c]
push eax
lea eax, [ebp - 0x4534]
push eax
lea eax, [ebp - 0x4ac0]
push eax
lea eax, [ebp - 0x23ec]
push eax
lea eax, [ebp - 0x2978]
push eax
lea eax, [ebp - 0x3fa8]
push eax
push dword [ebp + 0x10]
push 9
push esi
call fcn.00451f4f
add esp, 0x30
test eax, eax
je 0x48925e
push 0xa
push 0x316
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
cmp esi, ebx
jne 0x48938d
push 0x26
push 0x31b
push dword [0x53f574]
push 4
call fcn.0043ed15
add esp, 0x10
mov ebx, 0xffffe4a7
jmp 0x48968a
call fcn.00452584
pop ecx
mov edi, eax
jmp 0x48966d
push 0xa
push 0x324
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
cmp esi, ebx
jne 0x48938d
push 0x26
push 0x329
jmp 0x4891f6
lea eax, [ebp - 0x3fa8]
push eax
call fcn.004d9400
cmp eax, 0x46
pop ecx
jl 0x4892b4
push 0xa
push 0x339
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
cmp esi, ebx
jne 0x48938d
push 0x26
push 0x33e
jmp 0x4891f6
lea eax, [ebp - 0x3fa8]
push 0x45
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.004dded0
and byte [ebp - 0x6b], 0
lea eax, [ebp - 0x2978]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, 0xc
jl 0x489321
push 0xa
push 0x346
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
cmp esi, ebx
jne 0x48938d
push 0x26
push 0x34b
jmp 0x4891f6
lea eax, [ebp - 0x2978]
push 0xb
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004dded0
and byte [ebp - 0x1d], 0
lea eax, [ebp - 0x23ec]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, 0xc8
jl 0x4893a2
push 0xa
push 0x353
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
cmp esi, ebx
jne 0x48938d
push 0x26
push 0x358
jmp 0x4891f6
cmp dword [ebp - 4], 1
push esi
jne 0x489210
call fcn.004a4c5a
jmp 0x489215
mov ebx, 0xc7
lea eax, [ebp - 0x23ec]
push ebx
push eax
push dword [ebp + 0x20]
call fcn.004dded0
mov eax, dword [ebp + 0x20]
and byte [eax + 0xc7], 0
lea eax, [ebp - 0x4ac0]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, edi
jl 0x489418
push 0xa
push 0x360
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x489655
push 0x26
push 0x365
jmp 0x4891f6
mov edi, 0x58b
lea eax, [ebp - 0x4ac0]
push edi
push eax
push dword [ebp + 0xc]
call fcn.004dded0
mov eax, dword [ebp + 0xc]
and byte [eax + 0x58b], 0
lea eax, [ebp - 0x4534]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, 0xc
jl 0x48948f
push 0xa
push 0x36e
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x489655
push 0x26
push 0x373
jmp 0x4891f6
lea eax, [ebp - 0x4534]
push 0xb
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.004dded0
and byte [ebp - 0x105], 0
lea eax, [ebp - 0x3a1c]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, 0xc8
jl 0x489505
push 0xa
push 0x37b
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x489655
push 0x26
push 0x380
jmp 0x4891f6
lea eax, [ebp - 0x3a1c]
push ebx
push eax
lea eax, [ebp - 0x490]
push eax
call fcn.004dded0
and byte [ebp - 0x3c9], 0
lea eax, [ebp - 0x504c]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, 0xc
jl 0x489578
push 0xa
push 0x389
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x489655
push 0x26
push 0x38e
jmp 0x4891f6
lea eax, [ebp - 0x504c]
push 0xb
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.004dded0
and byte [ebp - 0x11d], 0
lea eax, [ebp - 0x2f04]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, 0x3d
jl 0x4895e8
push 0xa
push 0x397
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x489655
push 0x26
push 0x39c
jmp 0x4891f6
lea eax, [ebp - 0x2f04]
push 0x3d
push eax
lea eax, [ebp - 0x380]
push eax
call fcn.0043f6c3
lea eax, [ebp - 0x3490]
push eax
call fcn.004d9400
add esp, 0x10
cmp eax, 0x65
jl 0x4896ac
push 0xa
push 0x3a4
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.Split_failed
push str.error
push str.App_ID_not_decoded
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x489655
push 0x26
push 0x3a9
jmp 0x4891f6
cmp dword [ebp - 4], 1
push esi
jne 0x489663
call fcn.004a4c5a
jmp 0x489668
call fcn.00452584
pop ecx
mov edi, eax
xor ebx, ebx
push 0x58c
push edi
push dword [ebp + 0x18]
call fcn.0043f6c3
push esi
call fcn.004dce85
push edi
call fcn.004dce85
add esp, 0x14
push dword [ebp + 0x20]
call fcn.004dce85
push dword [ebp + 0xc]
call fcn.004dce85
pop ecx
pop ecx
push dword [ebp + 0x10]
call fcn.004dce85
pop ecx
mov eax, ebx
jmp 0x48b4f4
lea eax, [ebp - 0x3490]
push 0x64
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.004dded0
lea eax, [ebp - 0x1bc]
and byte [ebp - 0x1c0], 0
push eax
lea eax, [ebp - 0x3c8]
push eax
lea eax, [ebp - 0xb0]
push eax
push 2
push 0x52029c
call fcn.00451bd0
add esp, 0x20
test eax, eax
jne 0x489735
lea eax, [ebp - 0x28]
push 0xb
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004dded0
and byte [ebp - 0x11], 0
lea eax, [ebp - 0x3c8]
push 0x47
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.004dded0
and byte [ebp - 0x69], 0
lea eax, [ebp - 0x1bc]
push 0xb
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004dded0
add esp, 0x24
and byte [ebp - 0x1d], 0
push dword [ebp + 0x10]
call fcn.004dce85
push dword [ebp + 0x20]
call fcn.0049645f
pop ecx
cmp eax, 0xd
pop ecx
mov dword [ebp + 0x10], eax
jne 0x48976f
lea eax, [ebp - 0x28]
push 0
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.004a28c2
jmp 0x4897bd
cmp dword [ebp + 0x10], 0x3c
jne 0x489797
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.004a3c86
jmp 0x4897bd
cmp dword [ebp + 0x10], 0x3d
lea eax, [ebp - 0x1c]
push eax
jne 0x4897c7
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.004a4959
add esp, 0x1c
mov esi, eax
jmp 0x48ac0f
call fcn.004dc688
cmp dword [ebp + 0x10], 0xc
pop ecx
mov dword [0x557dac], eax
jne 0x4898b6
push dword [ebp + 0xc]
call fcn.004a4955
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x4897f1
call fcn.0044eda5
push dword [ebp - 4]
lea eax, [ebp - 0x11c]
push 0x51bd9c
push 0xb
push eax
call fcn.004de975
lea eax, [ebp - 0x11c]
and byte [ebp - 0x111], 0
push eax
push 1
pop ebx
push ebx
push esi
call fcn.004523f7
add esp, 0x1c
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x489857
push 0x26
push 0x46c
push dword [0x53f574]
push 4
call fcn.0043ed15
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x14]
add esp, 0x10
mov dword [eax], ebx
mov eax, dword [ebp + 8]
mov dword [ecx], eax
mov esi, 0xffffe4a7
jmp 0x48ac0f
mov esi, dword [ebp + 0x18]
push edi
push dword [ebp + 0x10]
push esi
call fcn.004dded0
push dword [ebp + 0x10]
and byte [esi + 0x58b], 0
call fcn.004dce85
push esi
call fcn.00452584
push edi
push eax
push esi
mov dword [ebp + 0x10], eax
call fcn.004dded0
push dword [ebp + 0x10]
and byte [esi + 0x58b], 0
call fcn.004dce85
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
add esp, 0x24
cmp dword [ebp - 4], 0
mov dword [eax], ebx
mov dword [edx], ecx
jne 0x4898af
mov dword [eax], 2
xor esi, esi
jmp 0x48ac0f
mov eax, dword [ebp + 0x10]
cmp eax, 0xb
jne 0x489b7c
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0xe4]
push 0xa
push eax
push dword [ebp + 0xc]
call fcn.004a480b
add esp, 0x10
test eax, eax
je 0x489921
push str.not_supported
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48990c
push 0x26
push 0x494
jmp 0x48a2b4
cmp dword [ebp - 4], 1
push edi
jne 0x489a74
call fcn.004a4c5a
jmp 0x489a79
lea eax, [ebp - 0xe4]
push 0x51c730
push eax
call fcn.004dd6c0
pop ecx
mov ebx, 0x51c72c
test eax, eax
pop ecx
je 0x48997e
lea eax, [ebp - 0xe4]
push ebx
push eax
call fcn.004dd6c0
pop ecx
test eax, eax
pop ecx
je 0x48997e
push str.not_supported
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48990c
push 0x26
push 0x49f
jmp 0x48a2b4
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x48]
push eax
push dword [ebp + 0xc]
call fcn.004a4910
add esp, 0xc
test eax, eax
je 0x4899c7
push str.Split_failed
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48990c
push 0x26
push 0x4b1
jmp 0x48a2b4
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 0xc]
call fcn.004a4910
add esp, 0xc
test eax, eax
je 0x489a10
push str.Split_failed
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48990c
push 0x26
push 0x4b9
jmp 0x48a2b4
lea eax, [ebp - 0xe4]
push ebx
push eax
call fcn.004dd6c0
pop ecx
test eax, eax
pop ecx
jne 0x489a96
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x66c]
push 0x1d9
push eax
push dword [ebp + 0xc]
call fcn.004a480b
add esp, 0x10
test eax, eax
je 0x489aaf
push str.Split_failed
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48990c
push 0x26
push 0x4c3
jmp 0x48a2b4
call fcn.00452584
pop ecx
mov esi, eax
push 0x58c
push esi
push dword [ebp + 0x18]
call fcn.0043f6c3
push edi
call fcn.004dce85
push esi
jmp 0x489ca8
push 0x1d9
lea eax, [ebp - 0x66c]
push str.reserved
push eax
call fcn.0043f6c3
add esp, 0xc
mov ebx, 0x58c
lea eax, [ebp - 0x1e60]
push ebx
push 0
push eax
call fcn.004d9ad0
mov eax, dword [ebp - 0x34]
push edi
mov edi, dword [ebp + 0xc]
add eax, edi
push eax
lea eax, [ebp - 0x1e60]
push eax
call fcn.004dded0
push ebx
lea eax, [ebp - 0x66c]
push edi
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x1e60]
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp + 8]
call fcn.004a1ca0
add esp, 0x3c
test eax, eax
push edi
jne 0x489b33
lea eax, [ebp - 0xb0]
push str.bat_keys
push eax
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x489b5c
push 0x26
push 0x4dd
jmp 0x48a2b4
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x489b5c
push 0x26
push 0x4e6
jmp 0x48a2b4
cmp dword [ebp - 4], 1
push esi
jne 0x489b6a
call fcn.004a4c5a
jmp 0x489b6f
call fcn.00452584
pop ecx
mov edi, eax
push ebx
push edi
push dword [ebp + 0x18]
jmp 0x489c9c
cmp eax, 0x23
jne 0x489ba6
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.004a438d
add esp, 0x1c
jmp 0x489c1c
cmp eax, 5
jne 0x489bd2
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.0049c5a7
add esp, 0x20
jmp 0x489c16
cmp eax, 0x41
jne 0x489bfc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.0049d721
add esp, 0x1c
jmp 0x489c16
cmp eax, 0x43
jne 0x489c2e
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0049dd1a
add esp, 0x10
mov ecx, dword [ebp + 0x1c]
and dword [ecx], 0
mov esi, 0xffffe4a7
cmp eax, esi
je 0x48ac0f
jmp 0x4898af
cmp eax, 0x2e
jne 0x489cdb
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push ebx
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.0047ba62
add esp, 0x1c
test eax, eax
mov eax, str.challenge
push eax
push eax
push ebx
jne 0x489cb5
push 0x5219a4
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x68c
jmp 0x48a2b4
call fcn.00452584
pop ecx
mov edi, eax
push 0x58c
push edi
push ebx
call fcn.0043f6c3
push esi
call fcn.004dce85
push edi
call fcn.004dce85
add esp, 0x14
jmp 0x4898af
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x695
jmp 0x48a2b4
cmp eax, 0x27
je 0x48b2dc
cmp eax, 0x28
je 0x48b2e0
cmp eax, 0x32
jne 0x489d77
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x1c]
push eax
push 2
lea eax, [ebp - 0x224]
push ebx
push eax
lea eax, [ebp - 0x28]
push dword [ebp + 0xc]
push eax
lea eax, [ebp - 0xb0]
push eax
push 0xffffffffffffffff
call fcn.0047b33f
add esp, 0x20
test eax, eax
mov eax, str.challenge
push eax
push eax
push ebx
jne 0x489d51
push str.RESPONSE_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x6e3
jmp 0x48a2b4
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x6ee
jmp 0x48a2b4
cmp eax, 0x30
jne 0x489dfb
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x224]
push ebx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push 0xffffffffffffffff
call fcn.0047b5e4
add esp, 0x1c
test eax, eax
mov eax, str.challenge
push eax
push eax
push ebx
jne 0x489dd5
push str.RESPONSE_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x707
jmp 0x48a2b4
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x712
jmp 0x48a2b4
cmp eax, 0x2b
jne 0x489e7f
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x224]
push ebx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push 0xffffffffffffffff
call fcn.0047b8c9
add esp, 0x1c
test eax, eax
mov eax, str.challenge
push eax
push eax
push ebx
jne 0x489e59
push str.RESPONSE_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x72c
jmp 0x48a2b4
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x737
jmp 0x48a2b4
cmp eax, 0x2c
jne 0x489f03
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x224]
push ebx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push 0xffffffffffffffff
call fcn.0047b6aa
add esp, 0x1c
test eax, eax
mov eax, str.challenge
push eax
push eax
push ebx
jne 0x489edd
push str.RESPONSE_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x754
jmp 0x48a2b4
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b103
push 0x26
push 0x75f
jmp 0x48a2b4
cmp eax, 6
jne 0x489f2b
lea eax, [ebp - 0x28]
push 0
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.004a31fc
jmp 0x4897bd
cmp eax, 7
jne 0x489f5a
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push 0
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.004a377b
add esp, 0x20
jmp 0x4897c0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x28]
push 1
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.0048180c
add esp, 0x10
cmp eax, 1
mov dword [ebp + 8], eax
je 0x48a08a
mov edi, eax
push edi
call fcn.00497688
push eax
push 0x807
push dword [0x53f574]
push 4
call fcn.0043ed15
add esp, 0x14
cmp edi, 0xfffffffd
mov ebx, 0x53f60c
jne 0x489fca
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x489fc7
cmp eax, 1
je 0x489fc7
cmp eax, 0x15
je 0x489fc7
cmp eax, 0x24
je 0x489fc7
cmp eax, 0x25
je 0x489fc7
cmp eax, 0x38
jne 0x489fe6
push 0xfffffffffffffffe
pop edi
cmp edi, 0xfffffffe
jne 0x489fe1
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.0043f46b
pop ecx
test eax, eax
pop ecx
jl 0x489ffd
jmp 0x489fe6
cmp edi, 0xfffffffd
jne 0x489ffd
lea eax, [ebp - 0x1c]
push 0x53e550
push eax
call fcn.0043f46b
pop ecx
test eax, eax
pop ecx
jge 0x489ffd
or edi, 0xffffffff
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.00497611
mov edi, eax
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.0043f46b
add esp, 0x10
test eax, eax
jge 0x48a05d
push edi
push str.error
push 2
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x48a03d
push 0x26
push 0x82c
jmp 0x48a2b4
cmp dword [ebp - 4], 1
push esi
jne 0x48a04b
call fcn.004a4c5a
jmp 0x48a050
call fcn.00452584
pop ecx
mov edi, eax
push 0x58c
jmp 0x489b73
push str.dummy2
push str.dummy1
push edi
push str.error
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48a03d
push 0x26
push 0x831
jmp 0x48a2b4
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x170]
push 0x21
push eax
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x490]
push eax
lea eax, [ebp - 0x110]
push eax
push dword [ebp - 8]
call fcn.004a278a
push 0xc
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.004d9ad0
push dword [ebp - 0x68]
lea eax, [ebp - 0x54]
push 0x51bd9c
push 0xb
push eax
call fcn.004de975
mov eax, dword [ebp + 0x10]
add esp, 0x3c
cmp dword [ebp + 0x10], 0x15
jg 0x48ab6f
cmp eax, 0x15
je 0x48aa32
sub eax, 0
je 0x48a95a
dec eax
je 0x48a7f8
dec eax
je 0x48a38f
dec eax
je 0x48a304
dec eax
je 0x48a146
sub eax, 5
jne 0x48aba2
push str.Debug_mode_not_yet_supported
push 0xe82
push dword [0x53f574]
push 2
call fcn.0043ed15
mov eax, dword [ebp + 0x1c]
add esp, 0x10
mov dword [eax], 4
jmp 0x4898af
mov eax, dword [ebp + 0x1c]
push dword [ebp - 8]
and dword [eax], 0
call fcn.00485df0
test eax, eax
pop ecx
jne 0x48a231
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [ebp - 8]
call fcn.004831d5
push eax
mov edi, 0x51cc00
lea eax, [ebp - 0x1b0]
push edi
push eax
call fcn.004dd565
push dword [ebp - 8]
call fcn.0048320c
push eax
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004dd565
push dword [ebp - 8]
call fcn.00483222
mov dword [ebp + 8], eax
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.0047a714
mov edi, eax
add esp, 0x30
test edi, edi
je 0x48a289
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ebx, dword [ebp - 0x30]
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x2c]
mov eax, ebx
sub eax, dword [edi + 0x58]
push dword [ebp - 0x64]
sbb ecx, dword [edi + 0x5c]
push ecx
push eax
call fcn.004df410
test eax, eax
jl 0x48a205
sub dword [ebp - 0xc], eax
jns 0x48a1fc
and dword [ebp - 0xc], 0
mov dword [edi + 0x58], ebx
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x5c], eax
push dword [ebp - 0x10]
lea eax, [ebp - 0x40]
push dword [ebp - 0xc]
push dword [ebp + 8]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.00455953
add esp, 0x14
test eax, eax
jne 0x48a289
mov dword [edi + 0x58], eax
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], eax
mov dword [edi + 0x5c], eax
push 0x12
lea eax, [ebp - 0x224]
push 1
push eax
lea eax, [ebp - 0x7338]
push eax
push dword [ebp + 0xc]
push dword [ebp - 8]
call fcn.004a1ed5
add esp, 0x18
test eax, eax
lea eax, [ebp - 0x544f]
push eax
lea eax, [ebp - 0x7338]
push eax
jne 0x48a2de
lea eax, [ebp - 0xb0]
push str.key_received
push eax
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xd8c
jmp 0x48a2b4
mov eax, 0x54a0b4
push eax
push eax
lea eax, [ebp - 0xb0]
push str.error
push eax
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xd72
push dword [0x53f574]
push 4
call fcn.0043ed15
add esp, 0x10
jmp 0x48984d
cmp dword [ebp - 4], 1
push edi
jne 0x48abe8
call fcn.004a4c5a
jmp 0x48abed
lea eax, [ebp - 0xb0]
push str.error
push eax
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xd9e
jmp 0x48a2b4
mov eax, dword [ebp + 0x1c]
push 0x12
push 0
and dword [eax], 0
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x7338]
push eax
push dword [ebp + 0xc]
push dword [ebp - 8]
call fcn.004a1ed5
add esp, 0x18
test eax, eax
lea eax, [ebp - 0x7338]
push eax
jne 0x48a362
lea eax, [ebp - 0xb0]
push str.key_received
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48a2c9
push 0x26
push 0xcfb
jmp 0x48a2b4
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48a2c9
push 0x26
push 0xd0b
jmp 0x48a2b4
lea eax, [ebp - 0x1c]
push 0x53e550
push eax
call fcn.0043f46b
pop ecx
test eax, eax
pop ecx
jl 0x48a3ea
lea eax, [ebp - 0x66c]
push eax
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x340]
push eax
lea eax, [ebp - 0x1e60]
push eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0xf8]
push eax
push dword [ebp + 0xc]
push 7
push 0x51bdb8
call fcn.00451bd0
add esp, 0x28
mov edi, eax
jmp 0x48a43e
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x340]
push eax
lea eax, [ebp - 0x1e60]
push eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0xf8]
push eax
push dword [ebp + 0xc]
push 6
push 0x51bdb8
call fcn.00451bd0
mov edi, eax
push 0x1d9
lea eax, [ebp - 0x66c]
push str.reserved
push eax
call fcn.0043f6c3
add esp, 0x30
test edi, edi
je 0x48a474
push str.Split_failed
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48a2c9
push 0x26
push 0xb32
jmp 0x48a2b4
mov edi, 0x51c18c
lea eax, [ebp - 0x340]
push edi
push eax
call fcn.004dd6c0
pop ecx
test eax, eax
pop ecx
je 0x48a4aa
lea eax, [ebp - 0x340]
push eax
call fcn.0049f5c3
push 0x40
lea eax, [ebp - 0x340]
push edi
push eax
call fcn.0043f6c3
add esp, 0x10
lea eax, [ebp - 0x48]
mov edi, 0x51bdd0
push eax
lea eax, [ebp - 0xf8]
push edi
push eax
call fcn.004dedfb
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x134]
push edi
push eax
call fcn.004dedfb
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x340]
push edi
push eax
call fcn.004dedfb
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x14c]
push edi
push eax
call fcn.004dedfb
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x140]
push edi
push eax
call fcn.004dedfb
push dword [ebp - 8]
call fcn.00485df0
add esp, 0x40
test eax, eax
jne 0x48a6f1
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push dword [ebp - 8]
call fcn.004831d5
push eax
mov edi, 0x51cc00
lea eax, [ebp - 0x1b0]
push edi
push eax
call fcn.004dd565
push dword [ebp - 8]
call fcn.0048320c
push eax
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004dd565
push dword [ebp - 8]
call fcn.00483222
mov dword [ebp + 8], eax
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.0047a714
mov edi, eax
add esp, 0x30
test edi, edi
je 0x48a6b9
mov eax, dword [edi + 0x50]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ebx, dword [ebp - 0x30]
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x2c]
mov eax, ebx
sub eax, dword [edi + 0x58]
push dword [ebp - 0x64]
sbb ecx, dword [edi + 0x5c]
push ecx
push eax
call fcn.004df410
test eax, eax
mov dword [ebp + 0x1c], eax
jl 0x48a5d1
sub dword [ebp - 0xc], eax
mov dword [edi + 0x58], ebx
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x5c], eax
jns 0x48a5cb
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x50], eax
cmp dword [ebp - 0xc], 0
jg 0x48a622
push dword [ebp - 0x10]
lea eax, [ebp - 0x40]
push dword [ebp - 0xc]
push dword [ebp + 8]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.00455953
push 0x54a0b4
lea eax, [ebp - 0xb0]
push str.grace_hours_exhausted
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x28
test edi, edi
jne 0x48a2c9
push 0x26
push 0xbe7
jmp 0x48a2b4
push dword [ebp - 8]
call fcn.00483231
cmp eax, 0xfffffff
pop ecx
jne 0x48a638
cmp dword [ebp + 0x1c], 0x3c
jmp 0x48a647
lea eax, [eax + eax*4]
push 0x64
shl eax, 4
cdq
pop ecx
idiv ecx
cmp dword [ebp + 0x1c], eax
jle 0x48a66d
push dword [ebp - 0x10]
lea eax, [ebp - 0x40]
push dword [ebp - 0xc]
push dword [ebp + 8]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.00455953
add esp, 0x14
test eax, eax
je 0x48a66d
xor edi, edi
jmp 0x48a673
mov edi, dword [ebp - 0xb8]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0047a64e
pop ecx
cmp eax, 0x2712
pop ecx
jne 0x48a6bb
push 0x54a0b4
lea eax, [ebp - 0xb0]
push str.grace_expired
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48a2c9
push 0x26
push 0xc16
jmp 0x48a2b4
xor edi, edi
test edi, edi
jne 0x48a6f1
push 0x54a0b4
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48a2c9
push 0x26
push 0xc23
jmp 0x48a2b4
push 1
lea eax, [ebp - 0x66c]
pop ebx
push ebx
push eax
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x7338]
push eax
lea eax, [ebp - 0x1e60]
push dword [ebp - 0xc0]
push dword [ebp - 0xbc]
push dword [ebp - 0xb4]
push eax
lea eax, [ebp - 0x1c]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push eax
push dword [ebp - 8]
call fcn.004a1529
push 0x54a0b4
mov edi, eax
call fcn.0049f5c3
add esp, 0x34
test edi, edi
jne 0x48a787
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x7338]
push eax
lea eax, [ebp - 0xb0]
push str.key_follows
push eax
push 5
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x48aa2a
push 0x26
push 0xc40
jmp 0x48a2b4
cmp edi, ebx
je 0x48a7c4
cmp edi, 4
je 0x48a7c4
lea eax, [ebp - 0x7338]
push eax
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48aa2a
push 0x26
push 0xc50
jmp 0x48a2b4
lea eax, [ebp - 0x7338]
push eax
lea eax, [ebp - 0xb0]
push str.renewal_key_expired
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48aa2a
push 0x26
push 0xc49
jmp 0x48a2b4
push 1
lea eax, [ebp - 0x300]
pop ebx
push ebx
push 0
push ebx
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x224]
push ebx
push eax
lea eax, [ebp - 0x7338]
push eax
push dword [ebp + 0xc]
push dword [ebp - 8]
call fcn.0049f611
add esp, 0x2c
test eax, eax
jne 0x48a8ee
cmp dword [ebp - 0x5c], 2
jne 0x48a8a8
push dword [ebp - 0x58]
lea eax, [ebp - 0x104]
push 0x51bd9c
push 0xb
push eax
call fcn.004de975
lea eax, [ebp - 0x104]
push str.reserved
push eax
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x544f]
push eax
and byte [ebp - 0xf9], 0
lea eax, [ebp - 0x7338]
push eax
lea eax, [ebp - 0xb0]
push str.key_follows
push eax
push 8
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x38
test edi, edi
jne 0x48aa2a
push 0x26
push 0x950
jmp 0x48a2b4
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x544f]
push eax
lea eax, [ebp - 0x7338]
push eax
lea eax, [ebp - 0xb0]
push str.key_follows
push eax
push 6
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x48aa2a
push 0x26
push 0x95d
jmp 0x48a2b4
cmp eax, ebx
lea eax, [ebp - 0x544f]
push eax
lea eax, [ebp - 0x7338]
push eax
jne 0x48a92d
lea eax, [ebp - 0xb0]
push str.key_not_available
push eax
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48aa2a
push 0x26
push 0x96b
jmp 0x48a2b4
lea eax, [ebp - 0xb0]
push str.error
push eax
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48aa2a
push 0x26
push 0x976
jmp 0x48a2b4
push 1
lea eax, [ebp - 0x300]
pop ebx
push ebx
push 0
push ebx
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x224]
push 0
push eax
lea eax, [ebp - 0x7338]
push eax
push dword [ebp + 0xc]
push dword [ebp - 8]
call fcn.0049f611
add esp, 0x2c
test eax, eax
jne 0x48a9cd
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x7338]
push eax
lea eax, [ebp - 0xb0]
push str.key_follows
push eax
push 5
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x48aa2a
push 0x26
push 0x90f
jmp 0x48a2b4
cmp eax, ebx
lea eax, [ebp - 0x7338]
push eax
jne 0x48aa01
lea eax, [ebp - 0xb0]
push str.key_not_available
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48aa2a
push 0x26
push 0x91a
jmp 0x48a2b4
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48aa2a
push 0x26
push 0x923
jmp 0x48a2b4
cmp dword [ebp - 4], ebx
jmp 0x48a2cd
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x18d4]
push eax
lea eax, [ebp - 0x1c]
push dword [ebp + 0xc]
push eax
push dword [ebp - 8]
call fcn.0049e4f0
push dword [ebp - 8]
mov dword [ebp + 8], eax
call fcn.00485df0
add esp, 0x18
test eax, eax
jne 0x48aa6c
push ebx
push str.grace_license
jmp 0x48ab0b
mov eax, dword [ebp + 8]
cmp eax, 0xffffffff
jne 0x48aa7f
push ebx
push str.qkey_follows
jmp 0x48ab0b
test eax, eax
jne 0x48aad2
push ebx
lea eax, [ebp - 0x2ec]
push str.key_follows
push eax
call fcn.004dded0
and byte [ebp - 0x225], 0
mov edi, 0x58c
lea eax, [ebp - 0x18d4]
push edi
push eax
push dword [ebp + 0x18]
call fcn.0043f6c3
push edi
push str.NULL
push dword [ebp + 0x18]
call fcn.0043f70d
push edi
push 0x51bdb8
push dword [ebp + 0x18]
call fcn.0043f70d
add esp, 0x30
jmp 0x48ab39
cmp eax, 1
jne 0x48aadf
push ebx
push str.key_not_available
jmp 0x48ab0b
cmp eax, 3
jne 0x48aaec
push ebx
push str.failed_due_to_hook
jmp 0x48ab0b
cmp eax, 4
jne 0x48aaf9
push ebx
push str.local_req_lockcrit_error
jmp 0x48ab0b
cmp eax, 5
push ebx
jne 0x48ab06
push str.grace_code_length_overflow_error
jmp 0x48ab0b
push str.error
lea eax, [ebp - 0x2ec]
push eax
call fcn.004dded0
and byte [ebp - 0x225], 0
push edi
mov edi, dword [ebp + 0x18]
lea eax, [ebp - 0x18d4]
push eax
push edi
call fcn.004dded0
add esp, 0x18
and byte [edi + 0x58b], 0
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x2ec]
push dword [ebp + 0x18]
push eax
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0x9f3
jmp 0x48a2b4
sub eax, 0x29
je 0x48b259
dec eax
je 0x48b1b6
sub eax, 5
je 0x48b118
dec eax
dec eax
je 0x48b084
sub eax, 7
je 0x48aca8
sub eax, 0xc
je 0x48ac28
push 1
push 0xe88
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.not_supported
lea eax, [ebp - 0xb0]
push str.error
push eax
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x48a2c9
push 0x26
push 0xe8f
jmp 0x48a2b4
call fcn.00452584
pop ecx
mov ebx, eax
push 0x58c
push ebx
push dword [ebp + 0x18]
xor esi, esi
call fcn.0043f6c3
push edi
call fcn.004dce85
push ebx
call fcn.004dce85
add esp, 0x14
push dword [ebp + 0x20]
call fcn.004dce85
push dword [ebp + 0xc]
call fcn.004dce85
pop ecx
mov eax, esi
pop ecx
jmp 0x48b4f4
lea eax, [ebp - 0x224]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0xc]
push dword [ebp - 8]
call fcn.0049f02f
add esp, 0x10
test eax, eax
jne 0x48ac78
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x54]
push eax
push dword [ebp + 0x18]
push 0x5219a4
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xe73
jmp 0x48a2b4
mov eax, str.challenge
push eax
push eax
push dword [ebp + 0x18]
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xe7d
jmp 0x48a2b4
push dword [ebp - 8]
call fcn.00485df0
test eax, eax
pop ecx
je 0x48ace0
push 0x54a0b4
push str.grace_license_not_found
push 2
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x48a2c9
push 0x26
push 0xdac
jmp 0x48a2b4
push dword [ebp - 8]
call fcn.004831d5
push eax
mov edi, 0x51cc00
lea eax, [ebp - 0x1b0]
push edi
push eax
call fcn.004dd565
push dword [ebp - 8]
call fcn.0048320c
push eax
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.004dd565
push dword [ebp - 8]
call fcn.00483222
lea ecx, [ebp - 0x10]
mov dword [ebp + 8], eax
push ecx
lea ecx, [ebp - 0xc]
push ecx
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.00455812
add esp, 0x38
test eax, eax
je 0x48ad4c
lea eax, [ebp - 0x2ec]
push str.error
push eax
call fcn.004dd750
pop ecx
pop ecx
push dword [ebp - 0x10]
push dword [ebp - 0xc]
call fcn.0047a64e
mov ebx, 0x2712
pop ecx
mov dword [ebp + 0x1c], eax
sub eax, ebx
pop ecx
je 0x48adb2
dec eax
je 0x48ad72
dec eax
jne 0x48adc5
push str.grace_hours_exhausted
jmp 0x48ad77
push str.grace_invalid_state
lea eax, [ebp - 0x2ec]
push eax
call fcn.004dd750
pop ecx
pop ecx
lea eax, [ebp - 0x2ec]
push 0x54a0b4
push eax
push 2
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x48a2c9
push 0x26
push 0xdd6
jmp 0x48a2b4
lea eax, [ebp - 0x2ec]
push str.grace_expired
push eax
call fcn.004dd750
pop ecx
pop ecx
cmp dword [ebp + 0x1c], ebx
je 0x48ad85
cmp dword [ebp + 0x1c], 0x2713
je 0x48ad85
cmp dword [ebp + 0x1c], 0x2714
je 0x48ad85
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x18d4]
push eax
lea eax, [ebp - 0x1c]
push dword [ebp + 0xc]
push eax
push dword [ebp - 8]
call fcn.0049e4f0
add esp, 0x14
test eax, eax
jne 0x48b013
lea eax, [ebp - 0xc8]
push eax
call fcn.0043f5cc
pop ecx
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp dword [ebp + 0x1c], 0
je 0x48afa6
cmp dword [ebp + 0x1c], 0x2715
jne 0x48aea3
push dword [ebp - 8]
call fcn.00485dd6
imul eax, eax, 0xe10
push dword [ebp - 8]
mov dword [ebp - 0xc], eax
call fcn.00485dbc
imul eax, eax, 0x15180
add eax, dword [ebp - 0xc8]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1b0]
push eax
lea eax, [ebp - 0xf00]
push edi
push eax
call fcn.004dd565
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xec0]
push edi
push eax
call fcn.004dd565
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xf08], ebx
call fcn.00488e99
push eax
call fcn.0049ee29
push eax
lea eax, [ebp - 0xf10]
push eax
call fcn.0045569c
add esp, 0x2c
test eax, eax
je 0x48aead
push str.error
jmp 0x48aff2
cmp dword [ebp - 0xea0], 0x9c4
jne 0x48aed4
push dword [ebp - 0xf0c]
call fcn.0043ac06
push eax
call fcn.00468276
pop ecx
mov dword [ebp - 0xea0], eax
pop ecx
jmp 0x48aede
sub dword [ebp - 0xea0], 0x76c
push dword [ebp - 0xea8]
mov edi, 0x51bd9c
lea eax, [ebp - 0xd0]
push edi
push eax
call fcn.004dd565
mov eax, dword [ebp - 0xea4]
inc eax
push eax
lea eax, [ebp - 0xec]
push edi
push eax
call fcn.004dd565
push dword [ebp - 0xea0]
lea eax, [ebp - 0xd8]
push edi
push eax
call fcn.004dd565
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0049a385
mov eax, dword [ebp - 0xc4]
add esp, 0x34
cmp dword [ebp - 0x10], eax
jle 0x48af50
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x40]
push ebx
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.0047a714
mov ecx, dword [ebp - 0xc]
mov dword [eax + 0x50], ecx
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x54], ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax + 0x58], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 0x5c], ecx
push dword [ebp - 0x10]
lea eax, [ebp - 0x40]
push dword [ebp - 0xc]
push ebx
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.00455953
lea eax, [ebp - 0x2ec]
push str.key_follows
push eax
call fcn.004dd750
add esp, 0x28
jmp 0x48b000
push dword [ebp + 8]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1b0]
push eax
call fcn.0047a714
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x48afd5
lea eax, [ebp - 0x2ec]
push str.error
push eax
call fcn.004dd750
pop ecx
pop ecx
mov eax, dword [ebp - 0xc]
push str.key_follows
mov dword [edi + 0x50], eax
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x54], eax
mov eax, dword [ebp - 0x30]
mov dword [edi + 0x58], eax
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x5c], eax
lea eax, [ebp - 0x2ec]
push eax
call fcn.004dd750
pop ecx
pop ecx
lea eax, [ebp - 0x18d4]
push eax
push dword [ebp + 0x18]
call fcn.004dd750
pop ecx
pop ecx
jmp 0x48b04e
cmp eax, 1
jne 0x48b01f
push str.key_not_available
jmp 0x48b030
cmp eax, 3
jne 0x48b02b
push str.failed_due_to_hook
jmp 0x48b030
push str.error
lea eax, [ebp - 0x2ec]
push eax
call fcn.004dd750
lea eax, [ebp - 0x18d4]
push eax
push dword [ebp + 0x18]
call fcn.004dd750
add esp, 0x10
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x2ec]
push dword [ebp + 0x18]
push eax
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xe5f
jmp 0x48a2b4
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.0049d1fb
pop ecx
pop ecx
test eax, eax
push ebx
jne 0x48b0e1
push str.SERVERINFO
push 0x5219a4
push 3
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48b0bf
push 0x26
push 0x858
jmp 0x48a2b4
cmp dword [ebp - 4], 1
push edi
jne 0x48b0cd
call fcn.004a4c5a
jmp 0x48b0d2
call fcn.00452584
pop ecx
mov esi, eax
push 0x58c
push esi
push ebx
jmp 0x489a85
push str.ERROR_FOLLOWS
push 2
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x48b103
push 0x26
push 0x85f
jmp 0x48a2b4
cmp dword [ebp - 4], 1
push esi
jne 0x489c8d
call fcn.004a4c5a
jmp 0x489c92
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x28]
push ebx
push dword [ebp + 0xc]
push eax
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 8]
call fcn.0049d044
add esp, 0x18
test eax, eax
jne 0x48b18a
mov eax, dword [ebp + 0x1c]
mov dword [eax], 8
mov eax, str.challenge
push eax
push eax
push ebx
push str.SUCCESSFULLY_WRITTEN
push 0x5219a4
push 5
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x48984d
push edi
push esi
push ebx
call fcn.004dded0
and byte [ebx + 0x58b], 0
push esi
call fcn.004dce85
add esp, 0x10
jmp 0x4898af
push str.challengechallenge
push ebx
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x48a2c9
push 0x26
push 0x8e8
jmp 0x48a2b4
push dword [ebp - 8]
call fcn.00485df0
test eax, eax
pop ecx
jne 0x48b202
push str.not_supported
push dword [ebp + 0x18]
call fcn.004dd750
pop ecx
pop ecx
mov eax, str.challenge
push eax
push eax
push dword [ebp + 0x18]
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xa50
jmp 0x48a2b4
push dword [ebp + 0x18]
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x28]
push dword [ebp + 0xc]
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 8]
call fcn.0047b556
add esp, 0x18
test eax, eax
jne 0x48b1d2
mov eax, str.challenge
push eax
push eax
push dword [ebp + 0x18]
push str.RESPONSE_FOLLOWS
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xa44
jmp 0x48a2b4
lea eax, [ebp - 0x1c]
push eax
push 0
push dword [ebp + 0x18]
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x28]
push dword [ebp + 0xc]
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 8]
call fcn.0047b33f
add esp, 0x20
test eax, eax
mov eax, str.challenge
push eax
push eax
push dword [ebp + 0x18]
jne 0x48b2b6
push str.RESPONSE_FOLLOWS
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xa0f
jmp 0x48a2b4
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x48a2c9
push 0x26
push 0xa1a
jmp 0x48a2b4
xor eax, eax
jmp 0x48b2e3
push 1
pop eax
mov edi, dword [ebp + 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xb0]
push eax
push edi
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp + 8]
call fcn.0047b025
add esp, 0x1c
test eax, eax
mov eax, str.challenge
push eax
push eax
push edi
jne 0x48b332
push 0x5219a4
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b354
push 0x26
push 0x6bc
jmp 0x48a2b4
push str.ERROR_FOLLOWS
push 4
push esi
call fcn.004523f7
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x48b354
push 0x26
push 0x6c5
jmp 0x48a2b4
cmp dword [ebp - 4], 1
push esi
jne 0x48b362
call fcn.004a4c5a
jmp 0x48b367
call fcn.00452584
pop ecx
mov ebx, eax
push 0x58c
push ebx
push edi
call fcn.0043f6c3
push esi
call fcn.004dce85
push ebx
jmp 0x489ca8
push dword [ebp + 0x20]
call fcn.004dce85
pop ecx
mov dword [ebp + 0x20], ebx
cmp esi, ebx
je 0x48b39e
push esi
call fcn.004dce85
xor esi, esi
pop ecx
mov dword [ebp + 0xc], esi
push 0x12
push 0x2e3
push dword [0x53f574]
push 4
call fcn.0043ed15
push str.malloc_failed
push str.error
push str.App_ID_not_decoded
push 3
push 0x51bdb4
call fcn.004523f7
add esp, 0x24
cmp eax, ebx
mov dword [ebp + 8], eax
jne 0x48b411
push 0x26
push 0x2e8
push dword [0x53f574]
push 4
call fcn.0043ed15
add esp, 0x10
cmp dword [ebp + 0x20], ebx
je 0x48b3fc
push dword [ebp + 0x20]
call fcn.004dce85
pop ecx
cmp esi, ebx
je 0x48b407
push esi
call fcn.004dce85
pop ecx
mov ebx, 0xffffe4a7
jmp 0x48969c
cmp dword [ebp - 4], 1
push dword [ebp + 8]
jne 0x48b421
call fcn.004a4c5a
jmp 0x48b426
call fcn.00452584
pop ecx
mov esi, eax
push edi
push esi
push dword [ebp + 0x18]
call fcn.0043f6c3
push dword [ebp + 8]
call fcn.004dce85
push esi
call fcn.004dce85
add esp, 0x14
cmp dword [ebp + 0x20], ebx
je 0x48b452
push dword [ebp + 0x20]
call fcn.004dce85
pop ecx
cmp dword [ebp + 0xc], ebx
je 0x48969c
push dword [ebp + 0xc]
call fcn.004dce85
jmp 0x48969b
push 9
push 0x2d1
push dword [0x53f574]
push 4
call fcn.0043ed15
mov eax, dword [ebp + 0x14]
push str.decryption_failed
push str.error
push str.App_ID_not_decoded
push 3
push 0x51bdb4
mov dword [eax], esi
call fcn.004523f7
mov esi, eax
add esp, 0x24
cmp esi, ebx
jne 0x48b4c3
push 0x26
push 0x2d8
push dword [0x53f574]
push 4
call fcn.0043ed15
add esp, 0x10
mov eax, 0xffffe4a7
jmp 0x48b4f4
cmp dword [ebp - 4], 1
push esi
jne 0x48b4d1
call fcn.004a4c5a
jmp 0x48b4d6
call fcn.00452584
pop ecx
mov ebx, eax
push edi
push ebx
push dword [ebp + 0x18]
call fcn.0043f6c3
push esi
call fcn.004dce85
push ebx
call fcn.004dce85
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret