Function at 0x486290
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x740
mov esi, ecx
mov ebx, 0x18f7ad35
cmp dword [ebp + 0xc], 0xa
jne 0x4863d5
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 0x24]
xor ebx, 0x18f7ad25
lea eax, [ebx + 0x5a]
add al, 0xdd
mov dword [esp + 0x78], eax
mov eax, 3
sub eax, edx
xor eax, edx
setne cl
mov eax, edx
shl eax, cl
mov ecx, dword [ebp + 0x20]
lea eax, [ecx + eax + 0x1000]
xorps xmm0, xmm0
movaps xmmword [esp + 0x610], xmm0
mov dword [esp + 0x620], 0
mov byte [esp + 0x67], 0x5b
lea edi, [esp + 0x610]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.004917a0
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 4], str.__xml_version_1.0__encoding_UTF_8_____n_hasp_info__n_s_n_n
call fcn.00492090
mov dword [esp], edi
mov dword [esp + 4], str._n_v2c__n
call fcn.00492090
mov eax, dword [ebp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00492160
mov dword [esp], edi
mov dword [esp + 4], str._n__v2c__n_n__hasp_info__n
call fcn.00492090
mov dword [esp], edi
call fcn.00491790
mov esi, eax
mov dword [esp], edi
call fcn.007ca940
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x10], ecx
lea edi, [esp + 0x62c]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0xc], 0x100
call fcn.0044a760
cmp dword [ebp + 0x28], 0
je 0x486565
xor eax, eax
test al, al
jne 0x486565
dec ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], eax
mov byte [esp + 0x5c], al
jmp 0x487845
mov dword [esp + 0x5c], edx
mov dword [esp + 0x738], 0
mov dword [esp + 0x734], 0
mov dword [esp + 0x730], 0
lea eax, [esp + 0x738]
mov dword [esp + 8], eax
lea eax, [esp + 0x734]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.0049b210
mov ecx, 0x7000003a
test eax, eax
jne 0x48657e
add bl, 0x38
mov eax, 0xf
movzx ecx, bl
cmp ecx, 0x28
mov dword [esp + 0x40], edx
mov dword [esp + 0x50], 0x7000003a
mov dword [esp + 0x70], edx
mov byte [esp + 0x74], dl
mov byte [esp + 0x58], dl
mov byte [esp + 0x4b], dl
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x54], edx
je 0x486b3d
mov ebx, 0x10
cmp ecx, 0x54
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], eax
mov edx, 0x7000003a
mov dword [esp + 0x54], eax
mov byte [esp + 0x67], al
mov byte [esp + 0x4b], al
mov byte [esp + 0x58], al
mov byte [esp + 0x74], al
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x44], eax
je 0x4869e8
mov eax, 0xb
cmp ecx, 0x6d
mov dword [esp + 0x70], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], ecx
mov byte [esp + 0x4b], cl
mov byte [esp + 0x58], cl
mov dword [esp + 0x50], 0x7000003a
mov dword [esp + 0x78], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edi
jne 0x486817
mov ebx, 0xe
mov byte [esp + 0x58], 0x31
mov byte [esp + 0x67], 0x6b
mov eax, dword [esp + 0x738]
mov dword [esp], eax
call fcn.007ca950
mov dword [esp + 0x54], eax
mov dword [esp], eax
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], str.location
call fcn.007c58b0
mov dword [esp + 0x50], 0x7000003a
test eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x44], eax
mov byte [esp + 0x4b], al
mov byte [esp + 0x74], al
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], 0x7000003a
mov dword [esp + 0x38], eax
jne 0x486775
jmp 0x486a93
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x60], eax
mov byte [esp + 0x5c], al
jmp 0x487466
mov eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [esp + 0x58], 0x31
mov eax, dword [esp + 0x738]
mov dword [esp], eax
call fcn.007ca950
mov dword [esp + 0x54], eax
mov dword [esp], eax
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], str.location
call fcn.007c58b0
test eax, eax
je 0x4865df
mov dword [esp + 0x68], esi
imul eax, eax
and eax, 3
cmp eax, 3
mov edx, 0
je 0x4865e9
mov esi, 8
mov eax, 0x7000003a
jmp 0x486cdb
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], esi
jmp 0x4865ed
mov dword [esp + 0x6c], ebx
xor esi, esi
mov byte [esp + 0x67], 0x6b
jmp 0x486a93
mov byte [esp + 0x4b], 0x45
lea eax, [esp + 0x730]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], str.license_manager
call fcn.006492f0
mov edi, eax
mov dword [esp + 0x72c], 1
test edi, edi
je 0x486646
mov esi, 0xf
mov eax, dword [esp + 0x730]
test eax, eax
mov edx, ebx
jne 0x487273
jmp 0x486648
mov edx, ebx
movzx eax, byte [esp + 0x4b]
cmp eax, 0x45
je 0x486666
mov esi, 0xf
mov ebx, 8
cmp eax, 0x54
je 0x48668a
jmp 0x486fdb
mov byte [esp + 0x4b], 6
test edi, edi
mov dword [esp + 0x60], 0x7000003a
je 0x486680
xor eax, eax
test al, al
jmp 0x48700d
mov esi, 0x7000003a
jmp 0x4871fc
cmp ebx, 8
jne 0x4866be
mov eax, 0xb
mov byte [esp + 0x4b], 0x54
test edi, edi
je 0x4866c7
mov dword [esp + 0x60], 0x7000003a
xor ecx, ecx
test cl, cl
mov edx, 0x7000003a
mov esi, 0x7000003a
je 0x4871b3
jmp 0x486f9f
mov dword [esp + 0x60], eax
jmp 0x4871b3
mov dword [esp + 0x60], 0x7000003a
mov esi, 0x7000003a
jmp 0x486f9f
mov eax, 9
mov esi, dword [edi]
test esi, esi
je 0x4867ff
mov dword [esp + 0x50], edx
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x486803
mov dword [esp + 0x60], ebx
mov dword [esp + 0x38], esi
mov al, 0x1e
mov ebx, 7
movzx eax, al
cmp eax, 0x1b
jne 0x486775
mov dword [esp + 0x78], edi
xor eax, eax
mov ecx, dword [ebp + 8]
mov esi, ecx
lea ecx, [esi + 8]
lea edx, [esi + 0x10]
lea edi, [esi + 0xc]
mov byte [esp + 0x67], bl
jmp 0x486754
mov byte [esp + 0x67], 0x39
mov byte [esp + 0x74], 0x36
mov esi, eax
imul esi, esi
and esi, 3
cmp esi, 2
adc eax, 0
mov dword [esp + 0x70], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edi
mov esi, eax
or esi, 2
mov ebx, eax
xor ebx, 2
add ebx, esi
setne bl
movzx ebx, bl
xor esi, esi
cmp eax, ebx
jb 0x486730
mov edi, dword [esp + 0x78]
jmp 0x486853
xor esi, esi
cmp ebx, 7
jne 0x4871fc
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
je 0x4871fc
mov dword [esp + 0x78], edi
mov eax, dword [ebp + 8]
lea ecx, [eax + 8]
lea edx, [eax + 0x10]
lea edi, [eax + 0xc]
mov byte [esp + 0x67], al
jmp 0x4867d9
mov eax, 8
mov byte [esp + 0x67], 0x39
mov byte [esp + 0x74], 0x36
mov ebx, esi
imul ebx, ebx
and ebx, 3
cmp ebx, 2
adc esi, 0
mov dword [esp + 0x70], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edi
mov ebx, 3
sub ebx, esi
xor ebx, esi
setne bl
movzx ebx, bl
cmp esi, ebx
jb 0x4867b0
mov edi, dword [esp + 0x78]
xor edx, edx
cmp eax, 8
mov esi, edx
jne 0x4871b3
jmp 0x486853
mov dword [esp + 0x50], edx
mov dword [esp + 0x78], edi
mov ecx, dword [esp + 0x54]
mov dl, byte [esp + 0x74]
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
cmp eax, 9
mov edi, dword [esp + 0x78]
je 0x486838
mov byte [esp + 0x74], dl
xor eax, eax
test al, al
je 0x486588
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], esi
jmp 0x486844
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], esi
mov byte [esp + 0x74], dl
mov dword [esp + 0x54], ecx
mov dword [esp + 0x60], eax
xor edx, edx
jmp 0x4871b3
movzx eax, byte [esp + 0x74]
cmp eax, 2
jne 0x48690b
mov byte [esp + 0x74], 2
mov byte [esp + 0x78], 0x6a
mov dword [esp + 0x72c], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x72c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 6
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
call fcn.00481740
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x72c]
test ecx, ecx
je 0x486991
mov ebx, 0xf
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
je 0x486991
mov ecx, dword [esp + 0x4c]
mov dl, byte [esp + 0x67]
mov eax, dword [esp + 0x38]
jmp 0x486bf0
mov ebx, 0x18
mov byte [esp + 0x74], 0x36
mov byte [esp + 0x78], 0x6a
mov dword [esp + 0x72c], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x72c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 6
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
call fcn.00481740
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x72c], 0
jne 0x4869d3
movzx ecx, byte [esp + 0x78]
cmp ecx, 0x1b
je 0x486a4f
mov ebx, 3
cmp ecx, 0x4c
je 0x486a67
mov eax, 0xe
cmp ecx, 0x6a
jne 0x486a72
mov esi, 0xc
mov eax, dword [esp + 0x4c]
test eax, eax
mov edx, eax
je 0x486fb7
jmp 0x486e58
mov byte [esp + 0x74], 0x36
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x3c], eax
cmp ebx, 0x10
mov edi, dword [esp + 0x78]
jne 0x486c14
mov eax, ebx
not eax
and eax, 1
add eax, ebx
je 0x486c14
mov byte [esp + 0x58], 0x31
mov byte [esp + 0x67], 0x6b
mov eax, dword [esp + 0x738]
mov dword [esp], eax
call fcn.007ca950
mov dword [esp + 0x54], eax
mov dword [esp], eax
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], str.location
call fcn.007c58b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jmp 0x486a7d
mov eax, 0xc
mov ecx, dword [esp + 0x4c]
test ecx, ecx
mov edx, ecx
jne 0x4867f2
jmp 0x486fb7
mov edx, esi
mov ecx, dword [esp + 0x70]
jmp 0x486e44
mov ebx, edi
mov edi, dword [esp + 0x3c]
jmp 0x486f56
sete cl
movzx ecx, cl
mov dword [esp + 0x60], 0x7000003a
cmp eax, ecx
jne 0x4871fc
mov eax, 0xd
mov ebx, 0x7000003a
movzx ecx, byte [esp + 0x67]
cmp ecx, 0xf
je 0x486ba0
mov eax, 0x16
cmp ecx, 0x19
jne 0x486baf
mov ebx, 0x13
mov byte [esp + 0x4b], 0x45
lea eax, [esp + 0x730]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], str.license_manager
call fcn.006492f0
mov edi, eax
mov dword [esp + 0x72c], 1
mov ecx, dword [esp + 0x730]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete dl
mov dword [esp + 0x60], 0x7000003a
test edi, edi
je 0x487022
mov eax, edi
or eax, 2
mov ebx, edi
xor edi, 2
add edi, eax
je 0x486bb6
mov eax, 0x16
movzx edx, dl
cmp ecx, edx
mov edi, ebx
mov ebx, 0x13
je 0x487022
cmp eax, 0xf
je 0x486b5b
imul eax, eax
and eax, 3
cmp eax, 2
je 0x486b5b
mov ebx, 0x7000003a
mov edx, dword [esp + 0x50]
jmp 0x4866d9
mov byte [esp + 0x58], 0x31
mov byte [esp + 0x67], 0x6b
mov eax, dword [esp + 0x738]
mov dword [esp], eax
call fcn.007ca950
mov dword [esp + 0x54], eax
mov dword [esp], eax
call fcn.007aee60
mov dword [esp], eax
mov dword [esp + 4], str.location
call fcn.007c58b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jmp 0x486a7d
mov dword [esp + 0x60], 0x7000003a
mov ebx, esi
jmp 0x486d4b
mov edx, esi
jmp 0x4870e3
mov edi, ebx
mov ebx, 0x13
jmp 0x487022
mov ebx, 0xf
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00649280
mov dword [edi], eax
test eax, eax
je 0x486ca8
mov ebx, 8
mov dl, 2
mov ecx, dword [esp + 0x4c]
mov esi, ecx
cmp ebx, 8
je 0x486cb1
mov dword [esp + 0x38], eax
mov byte [esp + 0x67], dl
mov dword [esp + 0x4c], ecx
imul ebx, ebx
and ebx, 3
cmp ebx, 3
je 0x486853
movzx ecx, byte [esp + 0x67]
cmp ecx, 2
je 0x486c6a
mov eax, 3
cmp ecx, 0x39
je 0x486d8c
mov byte [esp + 0x67], 0x39
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00649280
mov dword [edi], eax
test eax, eax
jne 0x486cbe
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x38], eax
xor ecx, 2
add ecx, edx
mov esi, dword [esp + 0x4c]
mov edx, esi
jne 0x4871b3
jmp 0x486853
mov esi, 0xc
mov eax, dword [edi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00649280
mov dword [edi], eax
test eax, eax
je 0x486ccb
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x4c]
je 0x486cd1
mov dword [esp + 0x38], eax
mov byte [esp + 0x67], 0x41
mov esi, ecx
jmp 0x486853
mov edx, dword [esp + 0x4c]
jmp 0x48668a
mov dword [esp + 0x38], eax
mov byte [esp + 0x67], dl
jmp 0x486853
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x4c]
jmp 0x486853
mov edx, dword [esp + 0x4c]
jmp 0x486cd3
mov edx, ecx
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov dword [esp + 0x6c], ebx
cmp esi, 8
je 0x486cf9
xor eax, eax
test al, al
mov esi, edx
je 0x4871b3
jmp 0x4871fc
mov esi, edx
jmp 0x4871fc
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], str.hostname
call fcn.006492a0
test eax, eax
mov edx, 0x7000003a
je 0x486e8b
mov dword [esp + 0x44], eax
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4871b3
mov cl, 0x43
mov eax, 0xa
movzx ecx, cl
cmp ecx, 0x1c
jne 0x486d8c
mov eax, 0x16
mov ebx, 0x7000003a
cmp eax, 0xd
je 0x4865f9
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4865f9
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.00649510
test eax, eax
jne 0x486db9
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
mov edx, 0x7000003a
jne 0x4871b3
jmp 0x486db9
cmp eax, 3
jne 0x486da0
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x486bc2
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call fcn.00649510
mov edx, 0x7000003a
test eax, eax
je 0x4871b3
mov ebx, 0xd
mov dword [esp], eax
call fcn.004938e0
mov ecx, dword [esp + 0x70]
mov dword [ecx], eax
test eax, eax
mov edx, 0x70000003
je 0x486e44
imul eax, eax
and eax, 3
cmp eax, 3
je 0x486e44
mov esi, 0x19
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], str.name
call fcn.006492a0
test eax, eax
mov edx, 0x70000003
je 0x486e58
xor ecx, ecx
test cl, cl
jne 0x486e58
mov dword [esp], eax
call fcn.00649510
test eax, eax
jne 0x486e23
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x486eec
mov esi, 0xf
mov dword [esp], eax
call fcn.004938e0
mov ecx, dword [esp + 0x6c]
mov dword [ecx], eax
mov edx, 0x70000003
test eax, eax
jne 0x486e94
jmp 0x4871b3
cmp ebx, 3
je 0x486e72
xor eax, eax
test al, al
jne 0x486e72
mov dword [esp + 0x70], ecx
jmp 0x4871b3
cmp esi, 0xc
jne 0x486eec
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x4871b3
jmp 0x486eec
mov dword [esp + 0x70], ecx
mov eax, 0x12
mov ecx, dword [esp + 0x4c]
test ecx, ecx
mov edx, ecx
jne 0x4871b3
jmp 0x486ed0
mov dword [esp + 0x44], eax
jmp 0x4871b3
cmp esi, 0xf
je 0x486eec
xor eax, eax
test al, al
jne 0x486eec
mov ebx, 0xa
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00649510
mov dword [esp + 0x40], eax
test eax, eax
mov esi, 0x7000003a
je 0x487022
mov eax, 0xd
xor ecx, ecx
test cl, cl
jne 0x487022
cmp eax, 0xd
je 0x4870ae
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x486fb7
jmp 0x4870ae
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], str.time
call fcn.006494f0
mov edx, 0x7000003a
test eax, eax
jne 0x486f17
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x4871b3
mov eax, dword [edi]
mov ebx, edi
mov dword [esp], eax
mov dword [esp + 4], 0x7d6932
call fcn.006494f0
mov edi, eax
test edi, edi
je 0x487043
mov al, 2
mov esi, 0x18
movzx ecx, al
cmp ecx, 2
je 0x487089
mov eax, 0xf
cmp ecx, 0x70
jne 0x487094
cmp eax, 0xe
jne 0x48705d
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x48705d
mov dword [esp + 0x3c], edi
mov eax, 0xf
mov ecx, 9
mov esi, dword [esp + 0x4c]
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp esi, edx
mov edx, esi
mov edi, ebx
jne 0x487214
cmp eax, 0xb
je 0x4871fc
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4871fc
mov esi, 1
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], 0x7d848d
call fcn.006492a0
mov edx, 0x7000003a
test eax, eax
je 0x4871b3
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
je 0x486d00
mov byte [esp + 0x4b], 0x45
mov dword [esp + 0x60], 0x7000003a
test edi, edi
jne 0x487053
mov eax, 3
sub eax, edi
xor eax, edi
mov edx, 0x7000003a
mov esi, 0x7000003a
jne 0x4871fc
jmp 0x4871b3
cmp ebx, 0xa
jne 0x487166
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
mov edx, esi
jne 0x4871b3
jmp 0x486648
mov dword [esp + 0x3c], edi
mov edi, ebx
mov edx, 0x7000003a
jmp 0x4871b3
mov edx, 0x7000003a
jmp 0x4871b3
mov dword [esp], edi
mov dword [esp + 0x3c], edi
call fcn.00649510
test eax, eax
jne 0x4870a8
mov dword [esp + 0x40], eax
imul eax, eax
and eax, 3
mov edx, 0x7000003a
cmp eax, 2
mov edi, ebx
jb 0x4871b3
jmp 0x4870ae
mov dword [esp + 0x3c], edi
mov edi, ebx
jmp 0x486e94
mov dword [esp], edi
call fcn.00649510
test eax, eax
je 0x48716d
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov edi, ebx
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004938e0
mov ecx, dword [esp + 0x68]
mov dword [ecx], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
xor edx, edx
cmp ecx, 2
mov ecx, 0x70000003
cmove edx, ecx
test eax, eax
mov eax, 0xc
cmove edx, ecx
mov ebx, dword [esp + 0x60]
cmp eax, 0xc
je 0x48715a
xor eax, eax
test al, al
jne 0x487160
mov dword [esp + 0x78], edx
mov esi, 0xb
mov byte [esp + 0x4b], 0x45
lea eax, [esp + 0x730]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 4], str.license_manager
call fcn.006492f0
mov edi, eax
mov dword [esp + 0x72c], 1
test edi, edi
je 0x48718a
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
mov edx, dword [esp + 0x50]
je 0x48718e
mov eax, dword [esp + 0x730]
test eax, eax
je 0x48718e
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x4866d9
jmp 0x48718e
mov dword [esp + 0x60], ebx
jmp 0x4871b3
mov dword [esp + 0x60], ebx
jmp 0x4871b3
mov edx, esi
jmp 0x486648
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
mov esi, 3
mov dword [esp + 0x78], 0x7000003a
mov eax, dword [esp + 0x60]
mov edi, ebx
mov ebx, eax
mov edx, dword [esp + 0x50]
cmp esi, 3
je 0x4871ab
mov dword [esp + 0x50], edx
xor eax, eax
test al, al
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x78]
je 0x486648
jmp 0x4871b3
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x78], edi
xor esi, esi
mov edi, 3
mov ecx, dword [esp + 0x60]
jmp 0x4871e2
inc esi
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.00689a80
dec edi
mov edx, ebx
mov ecx, edx
mov ebx, edx
mov eax, esi
xor eax, edi
setne al
movzx eax, al
cmp esi, eax
jb 0x4871d0
mov dword [esp + 0x60], ecx
mov esi, ebx
mov edi, dword [esp + 0x78]
mov al, byte [esp + 0x58]
movzx eax, al
cmp eax, 0x39
je 0x487247
mov ecx, 7
cmp eax, 0x6f
jne 0x48728b
mov edx, esi
cmp ecx, 7
je 0x487224
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x4871b3
mov eax, dword [esp + 0x738]
mov ecx, dword [esp + 0x734]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov ecx, dword [esp + 0x60]
jmp 0x48657e
mov esi, 0x1f
mov byte [esp + 0x58], 0x31
mov eax, dword [esp + 0x738]
mov ecx, dword [esp + 0x734]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], eax
cmp esi, 0xf
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
mov ecx, edx
jne 0x48657e
jmp 0x4866d9
xor esi, esi
jmp 0x4872be
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x738]
mov ecx, dword [esp + 0x734]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0049b5b0
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x487290
mov ecx, dword [esp + 0x60]
jmp 0x48657e
mov ebx, 0x1b
mov al, 0x25
mov dword [esp + 0x78], eax
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], edi
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x100
call fcn.004959f0
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x4872e0
mov cx, word [esp + 0x54]
mov edi, dword [esp + 0x58]
jmp 0x4877c8
mov di, cx
mov esi, 0xb
mov byte [esp + 0x67], 0x33
lea eax, [esp + 0x590]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x510]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x490]
mov dword [esp + 0x6c], eax
lea ebx, [esp + 0x47c]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x60], ecx
lea eax, [esp + 0x62c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], str.haspid_llu_vendorid_u_file_s
mov dword [esp + 4], 0x400
call fcn.0064a2d0
mov byte [esp + 0x590], 0
mov byte [esp + 0x510], 0
mov byte [esp + 0x490], 0
mov eax, dword [ebp + 0x10]
mov edx, eax
test edx, edx
setne al
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne cl
and cl, al
je 0x4873eb
mov byte [esp + 0x5c], cl
mov cx, di
jmp 0x4877fc
mov byte [esp + 0x5c], cl
mov dword [esp + 0x68], ebx
mov ebx, 0x1a
mov dword [esp + 0x58], 0
mov cx, di
jmp 0x4875ce
mov byte [esp + 0x5c], al
xor edi, edi
mov ebx, 0x15
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.0048ca60
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4876df
mov al, 0x57
movzx eax, al
cmp eax, 0x57
jne 0x487483
mov ebx, 0x1f
mov esi, dword [esp + 0x68]
mov dword [esp], esi
mov dword [esp + 8], str.REMOTE
mov dword [esp + 4], 0x14
call fcn.004959f0
mov cx, di
mov dword [esp + 0x68], esi
cmp ebx, 0x10
jne 0x4874e2
imul ebx, ebx
and ebx, 3
cmp ebx, 2
mov di, cx
jb 0x4877d1
jmp 0x4874e2
xor esi, esi
mov ebx, dword [esp + 0x68]
jmp 0x4874a9
inc esi
mov dword [esp], ebx
mov dword [esp + 8], str.REMOTE
mov dword [esp + 4], 0x14
call fcn.004959f0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x487490
mov cx, di
jmp 0x4874e2
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 8], str.LOCAL
mov dword [esp + 4], 0x14
call fcn.004959f0
mov cx, word [esp + 0x54]
mov esi, 0xf
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
movzx eax, cx
mov di, cx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], str.RELOCATE
mov dword [esp + 0x14], str._api
call fcn.00444820
test byte [esp + 0x5c], 1
je 0x48781d
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x10c], 1
lea eax, [esp + 0x610]
mov dword [esp], eax
call fcn.00491890
xor eax, eax
jmp 0x486580
mov ebx, 0xb
mov al, 0xd
mov dword [esp + 0x78], eax
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], edi
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x100
call fcn.004959f0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x487580
mov cx, word [esp + 0x54]
cmp ebx, 0xb
jne 0x4875eb
mov eax, ebx
not eax
and eax, 1
add eax, ebx
mov edi, dword [esp + 0x58]
jne 0x4877d1
jmp 0x48740e
mov edi, dword [esp + 0x58]
jmp 0x48740e
mov eax, dword [esp + 0x78]
movzx eax, al
cmp eax, 0x25
je 0x487615
mov ebx, 0x13
cmp eax, 0x47
je 0x487989
xor esi, esi
jmp 0x487316
mov al, 0x47
mov dword [esp + 0x78], eax
mov dword [esp + 8], edi
mov eax, dword [ebp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], 0x100
call fcn.004959f0
mov cx, word [esp + 0x54]
mov edi, dword [esp + 0x58]
jmp 0x4877d1
mov ebx, 0xe
mov byte [esp + 0x67], 0x5d
lea eax, [esp + 0x590]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x510]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x490]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x47c]
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x60], ecx
lea eax, [esp + 0x62c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], str.haspid_llu_vendorid_u_file_s
mov dword [esp + 4], 0x400
call fcn.0064a2d0
mov byte [esp + 0x590], 0
mov byte [esp + 0x510], 0
mov byte [esp + 0x490], 0
cmp dword [ebp + 0x10], 0
setne al
je 0x487408
mov byte [esp + 0x5c], al
mov word [esp + 0x54], di
cmp ebx, 0xe
jne 0x4874c1
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
je 0x4874c1
lea edi, [esp + 0x62c]
jmp 0x487906
mov byte [esp + 0x67], 0x20
lea eax, [esp + 0x590]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x510]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x490]
mov dword [esp + 0x6c], eax
lea esi, [esp + 0x47c]
lea ebx, [esp + 0x7c]
mov dword [esp + 0x18], edi
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp], ebx
mov dword [esp + 8], str.haspid_llu_vendorid_u_file_s
mov dword [esp + 4], 0x400
call fcn.0064a2d0
mov byte [esp + 0x590], 0
mov byte [esp + 0x510], 0
mov byte [esp + 0x490], 0
mov eax, dword [ebp + 0x10]
mov edx, eax
test edx, edx
setne al
mov ecx, edx
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
setne cl
and cl, al
je 0x4877b0
mov byte [esp + 0x5c], cl
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
jmp 0x487906
mov byte [esp + 0x5c], cl
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ebx, 0xd
xor edi, edi
mov cx, word [esp + 0x54]
cmp ebx, 0xd
je 0x48740e
movzx eax, byte [esp + 0x67]
cmp eax, 0x20
je 0x487338
mov esi, 0x15
cmp eax, 0x33
je 0x48781a
mov esi, 0xc
mov ebx, 6
cmp eax, 0x5d
jne 0x48783a
mov ebx, dword [esp + 0x68]
lea edi, [esp + 0x62c]
mov word [esp + 0x54], cx
cmp esi, 0xb
jne 0x48770a
mov dword [esp + 0x68], ebx
jmp 0x487906
mov di, cx
cmp esi, 0xf
je 0x487562
imul esi, esi
and esi, 3
cmp esi, 2
jne 0x487640
jmp 0x487562
mov dword [esp + 0x58], edi
lea edi, [esp + 0x62c]
mov word [esp + 0x54], cx
cmp ebx, 6
jne 0x4875f4
mov eax, 3
sub eax, ebx
xor eax, ebx
je 0x4875f4
mov byte [esp + 0x67], 0x5b
lea eax, [esp + 0x590]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x510]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x490]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x47c]
mov dword [esp + 0x68], eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x18], edi
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], str.haspid_llu_vendorid_u_file_s
mov dword [esp + 4], 0x400
call fcn.0064a2d0
mov byte [esp + 0x590], 0
mov byte [esp + 0x510], 0
mov byte [esp + 0x490], 0
mov eax, dword [ebp + 0x10]
mov ecx, eax
test ecx, ecx
setne al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
or cl, al
mov byte [esp + 0x5c], cl
je 0x48740c
mov ebx, 6
mov eax, dword [ebp + 0x10]
mov esi, eax
lea eax, [esi + 0x42]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], pe_nt_image_headers32
call fcn.004959f0
mov ax, word [esi + 0x40]
mov dword [esp + 0x58], eax
lea eax, [esi + 0x3ed]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], pe_nt_image_headers32
call fcn.004959f0
lea eax, [esi + 0x42d]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 4], pe_nt_image_headers32
call fcn.004959f0
lea eax, [esi + 0x4ed]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], pe_nt_image_headers32
call fcn.004959f0
cmp ebx, 6
je 0x4879a0
imul ebx, ebx
and ebx, 3
cmp ebx, 2
je 0x4879a9
xor esi, esi
jmp 0x4875b6
mov edi, dword [esp + 0x58]
jmp 0x48740e
mov edi, dword [esp + 0x58]
jmp 0x48740e