Function at 0x445af3
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
lea ebp, [esp - 0x78]
mov eax, 0x14c8
call fcn.00479e40
mov eax, dword [0x4c3a60]
xor eax, ebp
mov dword [ebp + 0x74], eax
push ebx
push esi
push edi
xor eax, eax
push 0xffe
mov word [ebp - 0x1244], ax
xor edi, edi
lea eax, [ebp - 0x1242]
push edi
push eax
mov dword [ebp - 0x1314], ecx
call fcn.00476cc0
add esp, 0xc
mov esi, 0x4b3140
push esi
lea ecx, [ebp - 0x12b4]
call fcn.004018f6
lea eax, [ebp - 0x12b4]
push eax
call fcn.00403cce
mov ecx, eax
call fcn.00403cf9
push str.program_thunder.exe
lea ecx, [ebp - 0x12b4]
call fcn.004019f8
push esi
lea ecx, [ebp - 0x1298]
call fcn.004018f6
cmp dword [ebp - 0x129c], 8
mov eax, dword [ebp - 0x12b0]
jae 0x445b8a
lea eax, [ebp - 0x12b0]
lea ecx, [ebp - 0x1298]
push ecx
push eax
call fcn.0040346e
xor eax, eax
push 0x206
mov word [ebp - 0x244], ax
lea eax, [ebp - 0x242]
push edi
push eax
call fcn.00476cc0
add esp, 0x14
push 0x104
lea eax, [ebp - 0x244]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x1260]
call fcn.004018f6
push 0xffffffffffffffff
push 0x4b3018
lea ecx, [ebp - 0x1260]
call fcn.00432ba1
lea ecx, [ebp - 0x130d]
push ecx
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0x1260]
push eax
lea ecx, [ebp - 0x1338]
call fcn.0040819e
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x1338]
push eax
lea ecx, [ebp - 0x1260]
call fcn.00401a1c
push edi
push 1
lea ecx, [ebp - 0x1338]
call fcn.00401ad3
push edi
call fcn.0047a439
mov dword [ebp - 0x131c], eax
lea eax, [ebp - 0x131c]
push eax
mov dword [ebp - 0x1318], edx
call fcn.0047a412
push eax
call fcn.0047a888
add esp, 0xc
push eax
lea ecx, [ebp - 0x127c]
call fcn.00402477
push edi
lea ecx, [ebp - 0x12d0]
mov dword [ebp - 0x12b8], 7
call fcn.00401d5a
cmp dword [ebp - 0x1264], 0x10
mov eax, dword [ebp - 0x1278]
jae 0x445c8a
lea eax, [ebp - 0x1278]
lea ecx, [ebp - 0x12d0]
push ecx
push dword [ebp - 0x1268]
push eax
call fcn.0040b7f1
xor eax, eax
mov byte [ebp + 4], 0
lea edi, [ebp + 5]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp + 0x64], 0
lea edi, [ebp + 0x65]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp + 0x14], 0
lea edi, [ebp + 0x15]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp + 0x24], 0
lea edi, [ebp + 0x25]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
add esp, 0xc
cmp dword [ebp - 0x1264], 0x10
stosb byte es:[edi], al
mov eax, dword [ebp - 0x1278]
jae 0x445cf1
lea eax, [ebp - 0x1278]
lea ecx, [ebp + 0x64]
push ecx
push dword [ebp - 0x1268]
push eax
call fcn.0046f513
mov eax, dword [ebp - 0x1294]
add esp, 0xc
cmp dword [ebp - 0x1280], 8
jae 0x445d19
lea eax, [ebp - 0x1294]
lea ecx, [ebp + 0x14]
push ecx
mov ecx, dword [ebp - 0x1284]
add ecx, ecx
push ecx
push eax
call fcn.0046f513
mov eax, dword [ebp - 0x125c]
add esp, 0xc
cmp dword [ebp - 0x1248], 8
jae 0x445d44
lea eax, [ebp - 0x125c]
lea ecx, [ebp + 0x24]
push ecx
mov ecx, dword [ebp - 0x124c]
add ecx, ecx
push ecx
push eax
call fcn.0046f513
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x64]
push 0x10
push eax
call fcn.0046f513
push 0x80
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x1450]
push eax
call fcn.0044368c
xor eax, eax
mov byte [ebp + 0x54], 0
lea edi, [ebp + 0x55]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp + 0x44], 0
lea edi, [ebp + 0x45]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp + 0x34], 0
lea edi, [ebp + 0x35]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movzx edi, byte [ebp + 0x67]
movzx eax, byte [ebp + 0x66]
movzx ebx, byte [ebp + 0x6b]
shl edi, 8
or edi, eax
movzx eax, byte [ebp + 0x65]
movzx edx, byte [ebp + 0x6f]
shl edi, 8
or edi, eax
movzx eax, byte [ebp + 0x64]
shl edi, 8
or edi, eax
mov eax, dword [ebp - 0x144c]
xor edi, dword [eax]
lea ecx, [eax + 4]
movzx eax, byte [ebp + 0x6a]
shl ebx, 8
or ebx, eax
movzx eax, byte [ebp + 0x69]
shl ebx, 8
or ebx, eax
movzx eax, byte [ebp + 0x68]
shl ebx, 8
or ebx, eax
movzx eax, byte [ebp + 0x6e]
xor ebx, dword [ecx]
shl edx, 8
or edx, eax
movzx eax, byte [ebp + 0x6d]
shl edx, 8
or edx, eax
movzx eax, byte [ebp + 0x6c]
mov dword [ebp - 0x130c], ecx
shl edx, 8
add esp, 0x24
add ecx, 4
mov dword [ebp - 0x12f0], edi
or edx, eax
movzx esi, byte [ebp + 0x73]
movzx eax, byte [ebp + 0x72]
xor edx, dword [ecx]
shl esi, 8
or esi, eax
movzx eax, byte [ebp + 0x71]
shl esi, 8
or esi, eax
movzx eax, byte [ebp + 0x70]
shl esi, 8
or esi, eax
mov eax, dword [ebp - 0x1450]
add ecx, 4
xor esi, dword [ecx]
sar eax, 1
add ecx, 4
dec eax
mov dword [ebp - 0x1308], eax
mov dword [ebp - 0x1304], eax
mov dword [ebp - 0x12f8], edx
mov dword [ebp - 0x1300], esi
mov eax, 0xff
shr esi, 8
shr edx, 0x10
and esi, eax
and edx, eax
cmp dword [ebp - 0x1304], 0
jle 0x4460bb
mov dword [ebp - 0x12fc], edx
mov edx, dword [esi*4 + 0x4a9e58]
mov esi, dword [ebp - 0x12fc]
xor edx, dword [esi*4 + 0x4aa258]
mov esi, ebx
shr esi, 0x18
xor edx, dword [esi*4 + 0x4aa658]
mov esi, edi
and esi, eax
xor edx, dword [esi*4 + 0x4a9a58]
mov esi, edi
xor edx, dword [ecx]
shr esi, 8
mov dword [ebp - 0x12f4], edx
mov edx, dword [ebp - 0x1300]
and esi, eax
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + 0x4aa258]
xor edx, dword [esi*4 + 0x4a9e58]
mov esi, dword [ebp - 0x12f8]
shr esi, 0x18
xor edx, dword [esi*4 + 0x4aa658]
mov esi, ebx
shr edi, 0x10
and edi, eax
and esi, eax
xor edx, dword [esi*4 + 0x4a9a58]
mov esi, ebx
shr esi, 8
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
xor esi, dword [edi*4 + 0x4aa258]
mov edi, dword [ebp - 0x1300]
shr edi, 0x18
xor esi, dword [edi*4 + 0x4aa658]
mov edi, dword [ebp - 0x12f8]
and edi, eax
xor esi, dword [edi*4 + 0x4a9a58]
mov edi, dword [ebp - 0x12f8]
shr edi, 8
and edi, eax
mov edi, dword [edi*4 + 0x4a9e58]
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x12f0]
shr ebx, 0x18
xor edi, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x1300]
and ebx, eax
xor edi, dword [ebx*4 + 0x4a9a58]
add ecx, 4
xor edx, dword [ecx]
add ecx, 4
xor esi, dword [ecx]
add ecx, 4
xor edi, dword [ecx]
mov ebx, esi
mov dword [ebp - 0x1300], edi
shr edi, 8
and edi, eax
mov edi, dword [edi*4 + 0x4a9e58]
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx*4 + 0x4aa258]
mov ebx, edx
shr ebx, 0x18
xor edi, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x12f4]
and ebx, eax
xor edi, dword [ebx*4 + 0x4a9a58]
mov ebx, dword [ebp - 0x12f4]
add ecx, 4
xor edi, dword [ecx]
add ecx, 4
mov dword [ebp - 0x12f0], edi
mov edi, dword [ebp - 0x1300]
shr edi, 0x10
mov dword [ebp - 0x12fc], esi
and edi, eax
mov edi, dword [edi*4 + 0x4aa258]
shr esi, 0x18
shr ebx, 8
and ebx, eax
xor edi, dword [ebx*4 + 0x4a9e58]
xor edi, dword [esi*4 + 0x4aa658]
mov esi, edx
and esi, eax
xor edi, dword [esi*4 + 0x4a9a58]
mov esi, edx
xor edi, dword [ecx]
shr esi, 8
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
mov ebx, edi
mov edi, dword [ebp - 0x12f4]
shr edi, 0x10
and edi, eax
xor esi, dword [edi*4 + 0x4aa258]
mov edi, dword [ebp - 0x1300]
shr edi, 0x18
xor esi, dword [edi*4 + 0x4aa658]
mov edi, dword [ebp - 0x12fc]
and edi, eax
xor esi, dword [edi*4 + 0x4a9a58]
add ecx, 4
xor esi, dword [ecx]
mov edi, dword [ebp - 0x12f0]
mov dword [ebp - 0x12f8], esi
mov esi, dword [ebp - 0x12fc]
shr esi, 8
shr edx, 0x10
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
and edx, eax
xor esi, dword [edx*4 + 0x4aa258]
mov edx, dword [ebp - 0x12f4]
shr edx, 0x18
xor esi, dword [edx*4 + 0x4aa658]
mov edx, dword [ebp - 0x1300]
and edx, eax
xor esi, dword [edx*4 + 0x4a9a58]
mov edx, dword [ebp - 0x12f8]
add ecx, 4
xor esi, dword [ecx]
add ecx, 4
dec dword [ebp - 0x1304]
mov dword [ebp - 0x1300], esi
jmp 0x445e73
mov dword [ebp - 0x12fc], edx
mov edx, dword [esi*4 + 0x4a9e58]
mov esi, dword [ebp - 0x12fc]
xor edx, dword [esi*4 + 0x4aa258]
mov esi, ebx
shr esi, 0x18
xor edx, dword [esi*4 + 0x4aa658]
mov esi, edi
and esi, eax
xor edx, dword [esi*4 + 0x4a9a58]
mov esi, edi
xor edx, dword [ecx]
shr esi, 8
mov dword [ebp - 0x12f4], edx
mov edx, dword [ebp - 0x1300]
shr edx, 0x10
and edx, eax
and esi, eax
mov dword [ebp - 0x12fc], esi
mov esi, dword [edx*4 + 0x4aa258]
mov edx, dword [ebp - 0x12fc]
xor esi, dword [edx*4 + 0x4a9e58]
mov edx, dword [ebp - 0x12f8]
shr edx, 0x18
xor esi, dword [edx*4 + 0x4aa658]
mov edx, ebx
and edx, eax
xor esi, dword [edx*4 + 0x4a9a58]
mov edx, ebx
shr edx, 8
and edx, eax
shr edi, 0x10
and edi, eax
mov dword [ebp - 0x12fc], edi
mov edi, dword [edx*4 + 0x4a9e58]
mov edx, dword [ebp - 0x12fc]
xor edi, dword [edx*4 + 0x4aa258]
mov edx, dword [ebp - 0x1300]
shr edx, 0x18
xor edi, dword [edx*4 + 0x4aa658]
mov edx, dword [ebp - 0x12f8]
and edx, eax
xor edi, dword [edx*4 + 0x4a9a58]
mov edx, dword [ebp - 0x12f8]
shr edx, 8
shr ebx, 0x10
and edx, eax
mov edx, dword [edx*4 + 0x4a9e58]
and ebx, eax
xor edx, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x12f0]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x1300]
and ebx, eax
xor edx, dword [ebx*4 + 0x4a9a58]
add ecx, 4
xor esi, dword [ecx]
add ecx, 4
xor edi, dword [ecx]
add ecx, 4
xor edx, dword [ecx]
mov ebx, esi
mov dword [ebp - 0x1300], edx
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
mov edx, edi
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
shl ebx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x1300]
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x12f4]
add ecx, 4
shl edx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
xor edx, ebx
xor edx, dword [ecx]
mov ebx, edi
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
mov dword [ebp - 0x12f0], edx
mov edx, dword [ebp - 0x1300]
shl ebx, 8
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
xor edx, ebx
mov ebx, dword [ebp - 0x12f4]
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, esi
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x12f4]
add ecx, 4
xor edx, dword [ecx]
shr ebx, 0x10
mov dword [ebp - 0x1304], edx
mov edx, dword [ebp - 0x1300]
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shr edx, 0x18
movzx edx, byte [edx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, esi
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
shr esi, 0x10
mov ebx, edi
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
and esi, eax
shl edx, 8
xor edx, ebx
movzx ebx, byte [esi + 0x4a9958]
mov esi, dword [ebp - 0x12f4]
shr esi, 0x18
movzx esi, byte [esi + 0x4a9958]
shl esi, 8
xor ebx, esi
shr edi, 8
and edi, eax
movzx esi, byte [edi + 0x4a9958]
shl ebx, 8
xor ebx, esi
mov esi, dword [ebp - 0x1300]
add ecx, 4
xor edx, dword [ecx]
and esi, eax
movzx esi, byte [esi + 0x4a9958]
shl ebx, 8
xor ebx, esi
xor ebx, dword [ecx + 4]
mov ecx, dword [ebp - 0x12f0]
mov byte [ebp + 0x54], cl
shr ecx, 8
mov byte [ebp + 0x55], cl
mov ecx, dword [ebp - 0x12f0]
shr ecx, 0x10
mov byte [ebp + 0x56], cl
mov ecx, dword [ebp - 0x12f0]
shr ecx, 0x18
mov byte [ebp + 0x57], cl
mov ecx, dword [ebp - 0x1304]
mov byte [ebp + 0x58], cl
shr ecx, 8
mov byte [ebp + 0x59], cl
mov ecx, dword [ebp - 0x1304]
shr ecx, 0x10
mov byte [ebp + 0x5a], cl
mov ecx, dword [ebp - 0x1304]
shr ecx, 0x18
mov byte [ebp + 0x5b], cl
mov ecx, edx
shr ecx, 8
mov byte [ebp + 0x5d], cl
mov ecx, edx
shr ecx, 0x10
mov byte [ebp + 0x5e], cl
mov byte [ebp + 0x5c], dl
shr edx, 0x18
mov byte [ebp + 0x5f], dl
movzx edx, byte [ebp + 0x16]
mov ecx, ebx
shr ecx, 8
mov byte [ebp + 0x61], cl
mov ecx, ebx
shr ecx, 0x10
mov byte [ebp + 0x62], cl
movzx ecx, byte [ebp + 0x17]
shl ecx, 8
or ecx, edx
movzx edx, byte [ebp + 0x15]
shl ecx, 8
or ecx, edx
movzx edx, byte [ebp + 0x14]
movzx edi, byte [ebp + 0x1f]
mov byte [ebp + 0x60], bl
shr ebx, 0x18
mov byte [ebp + 0x63], bl
movzx ebx, byte [ebp + 0x1b]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x144c]
xor ecx, dword [edx]
movzx edx, byte [ebp + 0x1a]
shl ebx, 8
or ebx, edx
movzx edx, byte [ebp + 0x19]
movzx esi, byte [ebp + 0x22]
shl ebx, 8
or ebx, edx
movzx edx, byte [ebp + 0x18]
shl ebx, 8
or ebx, edx
movzx edx, byte [ebp + 0x1e]
shl edi, 8
or edi, edx
movzx edx, byte [ebp + 0x1d]
shl edi, 8
or edi, edx
movzx edx, byte [ebp + 0x1c]
shl edi, 8
or edi, edx
movzx edx, byte [ebp + 0x23]
shl edx, 8
or edx, esi
movzx esi, byte [ebp + 0x21]
shl edx, 8
mov dword [ebp - 0x12f8], ecx
mov ecx, dword [ebp - 0x130c]
xor ebx, dword [ecx]
or edx, esi
movzx esi, byte [ebp + 0x20]
add ecx, 4
xor edi, dword [ecx]
shl edx, 8
add ecx, 4
or edx, esi
xor edx, dword [ecx]
mov esi, dword [ebp - 0x1308]
add ecx, 4
mov dword [ebp - 0x1300], edi
mov dword [ebp - 0x12f0], edx
mov dword [ebp - 0x12fc], esi
test esi, esi
jle 0x44668c
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + 0x4a9e58]
mov esi, edi
shr esi, 0x10
and esi, eax
xor edx, dword [esi*4 + 0x4aa258]
mov esi, ebx
shr esi, 0x18
xor edx, dword [esi*4 + 0x4aa658]
mov esi, dword [ebp - 0x12f8]
and esi, eax
xor edx, dword [esi*4 + 0x4a9a58]
mov esi, dword [ebp - 0x12f8]
xor edx, dword [ecx]
shr esi, 8
and esi, eax
mov dword [ebp - 0x12f4], edx
mov edx, dword [ebp - 0x12f0]
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + 0x4aa258]
xor edx, dword [esi*4 + 0x4a9e58]
mov esi, edi
shr esi, 0x18
xor edx, dword [esi*4 + 0x4aa658]
mov esi, ebx
and esi, eax
xor edx, dword [esi*4 + 0x4a9a58]
mov esi, dword [ebp - 0x12f8]
shr esi, 0x10
and esi, eax
add ecx, 4
xor edx, dword [ecx]
add ecx, 4
mov dword [ebp - 0x1304], edx
mov edx, ebx
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + 0x4a9e58]
xor edx, dword [esi*4 + 0x4aa258]
mov esi, dword [ebp - 0x12f0]
shr esi, 0x18
xor edx, dword [esi*4 + 0x4aa658]
mov esi, edi
and esi, eax
xor edx, dword [esi*4 + 0x4a9a58]
mov esi, dword [ebp - 0x12f8]
xor edx, dword [ecx]
shr edi, 8
shr ebx, 0x10
and ebx, eax
shr esi, 0x18
and edi, eax
mov edi, dword [edi*4 + 0x4a9e58]
xor edi, dword [ebx*4 + 0x4aa258]
add ecx, 4
xor edi, dword [esi*4 + 0x4aa658]
mov esi, dword [ebp - 0x12f0]
and esi, eax
xor edi, dword [esi*4 + 0x4a9a58]
mov ebx, edx
xor edi, dword [ecx]
shr ebx, 0x10
mov esi, edi
shr esi, 8
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
and ebx, eax
xor esi, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x1304]
shr ebx, 0x18
xor esi, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x12f4]
and ebx, eax
xor esi, dword [ebx*4 + 0x4a9a58]
add ecx, 4
xor esi, dword [ecx]
mov dword [ebp - 0x12f0], edi
mov dword [ebp - 0x12f8], esi
add ecx, 4
mov esi, dword [ebp - 0x12f4]
shr edi, 0x10
shr esi, 8
and edi, eax
mov ebx, dword [edi*4 + 0x4aa258]
and esi, eax
xor ebx, dword [esi*4 + 0x4a9e58]
mov edi, dword [ebp - 0x12f4]
mov esi, edx
shr esi, 0x18
xor ebx, dword [esi*4 + 0x4aa658]
mov esi, dword [ebp - 0x1304]
and esi, eax
xor ebx, dword [esi*4 + 0x4a9a58]
mov esi, dword [ebp - 0x1304]
xor ebx, dword [ecx]
shr esi, 8
shr edi, 0x10
and edi, eax
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
xor esi, dword [edi*4 + 0x4aa258]
mov edi, dword [ebp - 0x12f0]
shr edi, 0x18
xor esi, dword [edi*4 + 0x4aa658]
mov edi, edx
and edi, eax
xor esi, dword [edi*4 + 0x4a9a58]
add ecx, 4
xor esi, dword [ecx]
shr edx, 8
and edx, eax
mov edi, dword [edx*4 + 0x4a9e58]
mov edx, dword [ebp - 0x12f4]
mov dword [ebp - 0x1300], esi
mov esi, dword [ebp - 0x1304]
shr esi, 0x10
and esi, eax
xor edi, dword [esi*4 + 0x4aa258]
shr edx, 0x18
xor edi, dword [edx*4 + 0x4aa658]
mov edx, dword [ebp - 0x12f0]
and edx, eax
xor edi, dword [edx*4 + 0x4a9a58]
add ecx, 4
xor edi, dword [ecx]
add ecx, 4
dec dword [ebp - 0x12fc]
cmp dword [ebp - 0x12fc], 0
mov dword [ebp - 0x12f0], edi
mov edx, edi
mov edi, dword [ebp - 0x1300]
jg 0x446453
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + 0x4a9e58]
mov esi, edi
shr esi, 0x10
and esi, eax
xor edx, dword [esi*4 + 0x4aa258]
mov esi, ebx
shr esi, 0x18
xor edx, dword [esi*4 + 0x4aa658]
mov esi, dword [ebp - 0x12f8]
and esi, eax
xor edx, dword [esi*4 + 0x4a9a58]
mov esi, dword [ebp - 0x12f8]
xor edx, dword [ecx]
shr esi, 8
mov dword [ebp - 0x12f4], edx
mov edx, dword [ebp - 0x12f0]
shr edx, 0x10
and edx, eax
and esi, eax
mov dword [ebp - 0x12fc], esi
mov esi, dword [edx*4 + 0x4aa258]
mov edx, dword [ebp - 0x12fc]
xor esi, dword [edx*4 + 0x4a9e58]
mov edx, ebx
and edx, eax
shr edi, 0x18
xor esi, dword [edi*4 + 0x4aa658]
mov edi, dword [ebp - 0x12f8]
xor esi, dword [edx*4 + 0x4a9a58]
mov edx, ebx
shr edx, 8
and edx, eax
shr edi, 0x10
and edi, eax
mov dword [ebp - 0x12fc], edi
mov edi, dword [edx*4 + 0x4a9e58]
mov edx, dword [ebp - 0x12fc]
xor edi, dword [edx*4 + 0x4aa258]
mov edx, dword [ebp - 0x12f0]
shr edx, 0x18
xor edi, dword [edx*4 + 0x4aa658]
mov edx, dword [ebp - 0x1300]
and edx, eax
xor edi, dword [edx*4 + 0x4a9a58]
mov edx, dword [ebp - 0x1300]
shr edx, 8
shr ebx, 0x10
and edx, eax
mov edx, dword [edx*4 + 0x4a9e58]
and ebx, eax
xor edx, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x12f8]
shr ebx, 0x18
xor edx, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x12f0]
and ebx, eax
xor edx, dword [ebx*4 + 0x4a9a58]
add ecx, 4
xor esi, dword [ecx]
add ecx, 4
xor edi, dword [ecx]
add ecx, 4
xor edx, dword [ecx]
mov ebx, esi
mov dword [ebp - 0x12f0], edx
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
mov edx, edi
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
shl ebx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x12f0]
shr ebx, 8
add ecx, 4
shl edx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
xor edx, ebx
mov ebx, dword [ebp - 0x12f4]
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
xor edx, dword [ecx]
mov ebx, edi
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
mov dword [ebp - 0x12f8], edx
mov edx, dword [ebp - 0x12f0]
shl ebx, 8
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
xor edx, ebx
mov ebx, dword [ebp - 0x12f4]
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, esi
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x12f0]
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
add ecx, 4
xor edx, dword [ecx]
shl ebx, 8
mov dword [ebp - 0x12fc], edx
mov edx, dword [ebp - 0x12f4]
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
xor edx, ebx
mov ebx, esi
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
shr esi, 0x10
mov ebx, edi
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
and esi, eax
shl edx, 8
xor edx, ebx
movzx ebx, byte [esi + 0x4a9958]
mov esi, dword [ebp - 0x12f4]
shr esi, 0x18
movzx esi, byte [esi + 0x4a9958]
shl esi, 8
xor ebx, esi
shr edi, 8
and edi, eax
movzx esi, byte [edi + 0x4a9958]
shl ebx, 8
xor ebx, esi
mov esi, dword [ebp - 0x12f0]
add ecx, 4
xor edx, dword [ecx]
and esi, eax
movzx esi, byte [esi + 0x4a9958]
shl ebx, 8
xor ebx, esi
xor ebx, dword [ecx + 4]
mov ecx, dword [ebp - 0x12f8]
mov byte [ebp + 0x44], cl
shr ecx, 8
mov byte [ebp + 0x45], cl
mov ecx, dword [ebp - 0x12f8]
shr ecx, 0x10
mov byte [ebp + 0x46], cl
mov ecx, dword [ebp - 0x12f8]
shr ecx, 0x18
mov byte [ebp + 0x47], cl
mov ecx, dword [ebp - 0x12fc]
mov byte [ebp + 0x48], cl
shr ecx, 8
mov byte [ebp + 0x49], cl
mov ecx, dword [ebp - 0x12fc]
shr ecx, 0x10
mov byte [ebp + 0x4a], cl
mov ecx, dword [ebp - 0x12fc]
shr ecx, 0x18
mov byte [ebp + 0x4b], cl
mov ecx, edx
shr ecx, 8
mov byte [ebp + 0x4d], cl
mov ecx, edx
shr ecx, 0x10
mov byte [ebp + 0x4e], cl
mov byte [ebp + 0x4c], dl
shr edx, 0x18
mov ecx, ebx
shr ecx, 8
mov byte [ebp + 0x51], cl
mov byte [ebp + 0x4f], dl
movzx edx, byte [ebp + 0x26]
movzx esi, byte [ebp + 0x2a]
mov ecx, ebx
shr ecx, 0x10
mov byte [ebp + 0x52], cl
movzx ecx, byte [ebp + 0x27]
shl ecx, 8
or ecx, edx
movzx edx, byte [ebp + 0x25]
shl ecx, 8
or ecx, edx
movzx edx, byte [ebp + 0x24]
movzx edi, byte [ebp + 0x2f]
mov byte [ebp + 0x50], bl
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x144c]
shr ebx, 0x18
mov byte [ebp + 0x53], bl
xor ecx, dword [edx]
movzx edx, byte [ebp + 0x2b]
shl edx, 8
or edx, esi
movzx esi, byte [ebp + 0x29]
movzx ebx, byte [ebp + 0x32]
shl edx, 8
or edx, esi
movzx esi, byte [ebp + 0x28]
shl edx, 8
or edx, esi
movzx esi, byte [ebp + 0x2e]
shl edi, 8
or edi, esi
movzx esi, byte [ebp + 0x2d]
shl edi, 8
or edi, esi
movzx esi, byte [ebp + 0x2c]
shl edi, 8
or edi, esi
movzx esi, byte [ebp + 0x33]
shl esi, 8
or esi, ebx
movzx ebx, byte [ebp + 0x31]
shl esi, 8
mov dword [ebp - 0x12f8], ecx
mov ecx, dword [ebp - 0x130c]
xor edx, dword [ecx]
or esi, ebx
movzx ebx, byte [ebp + 0x30]
add ecx, 4
xor edi, dword [ecx]
shl esi, 8
add ecx, 4
or esi, ebx
xor esi, dword [ecx]
mov dword [ebp - 0x1304], edi
mov dword [ebp - 0x12f4], esi
add ecx, 4
mov ebx, dword [ebp - 0x1308]
mov dword [ebp - 0x12fc], ebx
test ebx, ebx
jle 0x446c63
shr esi, 8
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
mov ebx, edi
shr ebx, 0x10
and ebx, eax
xor esi, dword [ebx*4 + 0x4aa258]
mov ebx, edx
shr ebx, 0x18
xor esi, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x12f8]
and ebx, eax
xor esi, dword [ebx*4 + 0x4a9a58]
mov ebx, dword [ebp - 0x12f8]
xor esi, dword [ecx]
shr ebx, 8
mov dword [ebp - 0x12f0], esi
mov esi, dword [ebp - 0x12f4]
and ebx, eax
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + 0x4aa258]
xor esi, dword [ebx*4 + 0x4a9e58]
mov ebx, edi
shr ebx, 0x18
xor esi, dword [ebx*4 + 0x4aa658]
mov ebx, edx
and ebx, eax
xor esi, dword [ebx*4 + 0x4a9a58]
mov ebx, dword [ebp - 0x12f8]
shr ebx, 0x10
add ecx, 4
xor esi, dword [ecx]
and ebx, eax
mov dword [ebp - 0x1304], esi
mov esi, edx
shr esi, 8
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
xor esi, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x12f4]
shr ebx, 0x18
xor esi, dword [ebx*4 + 0x4aa658]
mov ebx, edi
and ebx, eax
xor esi, dword [ebx*4 + 0x4a9a58]
shr edi, 8
and edi, eax
mov ebx, edx
mov edx, dword [edi*4 + 0x4a9e58]
mov edi, dword [ebp - 0x12f8]
shr ebx, 0x10
and ebx, eax
xor edx, dword [ebx*4 + 0x4aa258]
shr edi, 0x18
xor edx, dword [edi*4 + 0x4aa658]
mov edi, dword [ebp - 0x12f4]
and edi, eax
xor edx, dword [edi*4 + 0x4a9a58]
add ecx, 4
xor esi, dword [ecx]
add ecx, 4
xor edx, dword [ecx]
mov ebx, esi
shr ebx, 0x10
mov edi, edx
shr edi, 8
and edi, eax
mov edi, dword [edi*4 + 0x4a9e58]
and ebx, eax
xor edi, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x1304]
shr ebx, 0x18
xor edi, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x12f0]
and ebx, eax
xor edi, dword [ebx*4 + 0x4a9a58]
add ecx, 4
xor edi, dword [ecx]
mov dword [ebp - 0x12f4], edx
mov dword [ebp - 0x12f8], edi
mov edi, dword [ebp - 0x12f0]
mov ebx, dword [ebp - 0x12f0]
shr edi, 8
and edi, eax
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + 0x4aa258]
xor edx, dword [edi*4 + 0x4a9e58]
mov edi, esi
shr edi, 0x18
xor edx, dword [edi*4 + 0x4aa658]
mov edi, dword [ebp - 0x1304]
and edi, eax
xor edx, dword [edi*4 + 0x4a9a58]
mov edi, dword [ebp - 0x1304]
shr ebx, 0x10
and ebx, eax
shr edi, 8
and edi, eax
mov edi, dword [edi*4 + 0x4a9e58]
xor edi, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x12f4]
shr ebx, 0x18
xor edi, dword [ebx*4 + 0x4aa658]
mov ebx, esi
and ebx, eax
xor edi, dword [ebx*4 + 0x4a9a58]
mov ebx, dword [ebp - 0x1304]
shr esi, 8
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
shr ebx, 0x10
and ebx, eax
xor esi, dword [ebx*4 + 0x4aa258]
add ecx, 4
xor edx, dword [ecx]
mov ebx, esi
mov esi, dword [ebp - 0x12f0]
shr esi, 0x18
xor ebx, dword [esi*4 + 0x4aa658]
mov esi, dword [ebp - 0x12f4]
add ecx, 4
xor edi, dword [ecx]
and esi, eax
xor ebx, dword [esi*4 + 0x4a9a58]
add ecx, 4
xor ebx, dword [ecx]
add ecx, 4
dec dword [ebp - 0x12fc]
cmp dword [ebp - 0x12fc], 0
mov esi, ebx
mov dword [ebp - 0x12f4], esi
jg 0x446a2c
mov dword [ebp - 0x1304], edi
shr esi, 8
and esi, eax
mov esi, dword [esi*4 + 0x4a9e58]
mov ebx, edi
shr ebx, 0x10
and ebx, eax
xor esi, dword [ebx*4 + 0x4aa258]
mov ebx, edx
shr ebx, 0x18
xor esi, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x12f8]
and ebx, eax
xor esi, dword [ebx*4 + 0x4a9a58]
mov ebx, dword [ebp - 0x12f8]
xor esi, dword [ecx]
shr ebx, 8
and ebx, eax
mov dword [ebp - 0x12f0], esi
mov esi, dword [ebp - 0x12f4]
shr esi, 0x10
shr edi, 0x18
and esi, eax
mov esi, dword [esi*4 + 0x4aa258]
xor esi, dword [ebx*4 + 0x4a9e58]
mov ebx, dword [ebp - 0x12f8]
xor esi, dword [edi*4 + 0x4aa658]
mov edi, edx
shr ebx, 0x10
and ebx, eax
and edi, eax
xor esi, dword [edi*4 + 0x4a9a58]
mov edi, edx
shr edi, 8
and edi, eax
mov edi, dword [edi*4 + 0x4a9e58]
xor edi, dword [ebx*4 + 0x4aa258]
mov ebx, dword [ebp - 0x12f4]
shr ebx, 0x18
xor edi, dword [ebx*4 + 0x4aa658]
mov ebx, dword [ebp - 0x1304]
and ebx, eax
xor edi, dword [ebx*4 + 0x4a9a58]
mov ebx, dword [ebp - 0x1304]
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + 0x4a9e58]
shr edx, 0x10
and edx, eax
xor ebx, dword [edx*4 + 0x4aa258]
mov edx, dword [ebp - 0x12f8]
shr edx, 0x18
xor ebx, dword [edx*4 + 0x4aa658]
mov edx, dword [ebp - 0x12f4]
and edx, eax
xor ebx, dword [edx*4 + 0x4a9a58]
add ecx, 4
xor esi, dword [ecx]
add ecx, 4
xor edi, dword [ecx]
add ecx, 4
xor ebx, dword [ecx]
mov edx, edi
mov dword [ebp - 0x12f4], ebx
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
mov ebx, esi
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
shl ebx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x12f4]
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x12f0]
add ecx, 4
shl edx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
xor edx, ebx
xor edx, dword [ecx]
mov ebx, edi
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
mov dword [ebp - 0x12f8], edx
mov edx, dword [ebp - 0x12f4]
shl ebx, 8
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
xor edx, ebx
mov ebx, dword [ebp - 0x12f0]
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, esi
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
mov ebx, dword [ebp - 0x12f4]
shr ebx, 0x18
movzx ebx, byte [ebx + 0x4a9958]
add ecx, 4
xor edx, dword [ecx]
shl ebx, 8
mov dword [ebp - 0x1308], edx
mov edx, dword [ebp - 0x12f0]
shr edx, 0x10
and edx, eax
movzx edx, byte [edx + 0x4a9958]
xor edx, ebx
mov ebx, esi
shr ebx, 8
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
shr esi, 0x10
and esi, eax
mov ebx, edi
and ebx, eax
movzx ebx, byte [ebx + 0x4a9958]
shl edx, 8
xor edx, ebx
movzx ebx, byte [esi + 0x4a9958]
mov esi, dword [ebp - 0x12f0]
shr esi, 0x18
movzx esi, byte [esi + 0x4a9958]
shl esi, 8
xor ebx, esi
shr edi, 8
and edi, eax
movzx esi, byte [edi + 0x4a9958]
shl ebx, 8
xor ebx, esi
mov esi, dword [ebp - 0x12f4]
and esi, eax
movzx eax, byte [esi + 0x4a9958]
add ecx, 4
xor edx, dword [ecx]
shl ebx, 8
xor ebx, eax
xor ebx, dword [ecx + 4]
mov eax, dword [ebp - 0x12f8]
mov ecx, eax
shr ecx, 8
mov byte [ebp + 0x35], cl
mov ecx, eax
shr ecx, 0x10
mov byte [ebp + 0x34], al
shr eax, 0x18
mov byte [ebp + 0x37], al
mov eax, dword [ebp - 0x1308]
mov byte [ebp + 0x36], cl
mov byte [ebp + 0x38], al
mov ecx, eax
shr ecx, 8
mov byte [ebp + 0x39], cl
mov ecx, eax
shr eax, 0x18
mov byte [ebp + 0x3b], al
mov eax, edx
shr eax, 8
mov byte [ebp + 0x3d], al
mov eax, edx
shr eax, 0x10
mov byte [ebp + 0x3e], al
mov eax, ebx
shr eax, 8
mov byte [ebp + 0x41], al
mov eax, ebx
mov byte [ebp + 0x40], bl
shr ebx, 0x18
shr eax, 0x10
mov byte [ebp + 0x43], bl
xor ebx, ebx
push 0x2f
mov byte [ebp + 0x42], al
mov byte [ebp + 0x3c], dl
lea eax, [ebp - 0x3b]
shr ecx, 0x10
shr edx, 0x18
push ebx
push eax
mov byte [ebp + 0x3a], cl
mov byte [ebp + 0x3f], dl
mov byte [ebp - 0x3c], bl
call fcn.00476cc0
push 0x10
pop esi
push esi
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.004775b0
push esi
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004775b0
push esi
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004775b0
xor eax, eax
mov byte [ebp - 0xc], bl
lea edi, [ebp - 0xb]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x3c]
push 0x30
push eax
call fcn.0046f513
push esi
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x12ec]
push eax
call fcn.0042c062
mov edi, dword [ebp - 0x12e8]
add esp, 0x48
push 8
pop eax
cmp dword [ebp - 0x12d4], eax
jae 0x446fa2
lea edi, [ebp - 0x12e8]
mov ecx, dword [ebp - 0x12cc]
cmp dword [ebp - 0x12b8], eax
jae 0x446fb6
lea ecx, [ebp - 0x12cc]
mov esi, dword [ebp - 0x1314]
mov dword [ebp - 0x1308], ecx
cmp dword [esi + 0x34], eax
jb 0x446fcc
mov ecx, dword [esi + 0x20]
jmp 0x446fcf
lea ecx, [esi + 0x20]
mov dword [ebp - 0x130c], ecx
cmp dword [esi + 0x18], eax
jb 0x446fdf
mov ecx, dword [esi + 4]
jmp 0x446fe2
lea ecx, [esi + 4]
mov edx, dword [ebp - 0x125c]
cmp dword [ebp - 0x1248], eax
jae 0x446ff6
lea edx, [ebp - 0x125c]
cmp dword [ebp - 0x1280], eax
mov eax, dword [ebp - 0x1294]
jae 0x44700a
lea eax, [ebp - 0x1294]
push edi
push dword [ebp - 0x1308]
push dword [ebp - 0x130c]
push ecx
push edx
push eax
lea eax, [ebp - 0x1244]
push str.http:__stat.download.xunlei.com:8080__aid1021id600val1_sval2_sval3_sval4_sval5_sval6_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x20
lea eax, [ebp - 0x1244]
push eax
lea ecx, [ebp - 0x1338]
call fcn.004018f6
push eax
mov ecx, esi
call fcn.004448f6
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x1338]
call fcn.00401ad3
push ebx
push esi
lea ecx, [ebp - 0x12ec]
call fcn.00401ad3
push ebx
push esi
lea ecx, [ebp - 0x12d0]
call fcn.00401ad3
push ebx
push esi
lea ecx, [ebp - 0x127c]
call fcn.0040284b
push ebx
push esi
lea ecx, [ebp - 0x1260]
call fcn.00401ad3
push ebx
push esi
lea ecx, [ebp - 0x1298]
call fcn.00401ad3
push ebx
push esi
lea ecx, [ebp - 0x12b4]
call fcn.00401ad3
mov ecx, dword [ebp + 0x74]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00476d3a
add ebp, 0x78
leave
ret