Function at 0x439e40
Capabilities:
Encode data using xor
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
mov eax, dword [0x62acc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push edi
xor edi, edi
push edi
push edi
push 3
push edi
push 3
push closesocket
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x130], eax
cmp eax, 0xffffffff
je 0x43a4af
push ebx
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
lea eax, [esi + esi]
push eax
call fcn.00503e6e
mov ebx, eax
add esp, 4
mov dword [ebp - 0x134], ebx
test ebx, ebx
je 0x43a19e
push edi
lea eax, [ebp - 0x138]
push eax
push esi
push ebx
push dword [ebp - 0x130]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x43a19e
cmp esi, dword [ebp - 0x138]
jne 0x43a19e
mov byte [esi + ebx], 0
mov edi, ebx
mov al, byte [ebx]
test al, al
je 0x439f3b
nop dword [eax]
cmp al, 0xa
je 0x439f0f
cmp al, 0xd
jne 0x439f33
inc edi
cmp byte [edi], 0xa
je 0x439f33
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x439ef3
sub ecx, edx
lea eax, [ecx + 1]
push eax
lea eax, [edi + 1]
push edi
push eax
call fcn.00500630
mov byte [edi], 0xa
jmp 0x439f30
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x439f14
sub ecx, edx
lea esi, [edi + 1]
lea eax, [ecx + 1]
push eax
push edi
push esi
call fcn.00500630
mov byte [edi], 0xd
mov edi, esi
add esp, 0xc
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x439ee0
push str._License_
push ebx
call fcn.005000e0
add esp, 8
test eax, eax
je 0x43a19c
cmp byte [eax + 9], 0x3d
jne 0x43a19c
mov byte [eax + 9], 0
lea esi, [ebp - 0x108]
add eax, 0xa
mov edi, 0x104
push str._Product_
push ebx
mov dword [ebp - 0x148], eax
call fcn.005000e0
mov ecx, eax
add esp, 8
test ecx, ecx
jne 0x439f98
push dword [ebp - 0x130]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43a1b2
mov al, byte [ecx + 9]
add ecx, 0xa
cmp al, 0x3d
jne 0x439f87
mov al, byte [ecx]
test al, al
je 0x439fbc
cmp al, 0xd
je 0x439fbc
cmp edi, 1
jle 0x439fbc
inc ecx
mov byte [esi], al
inc esi
dec edi
mov al, byte [ecx]
test al, al
jne 0x439fa8
lea eax, [ebp - 0x108]
mov byte [esi], 0
push 0x90fe0a
push eax
call fcn.00504753
add esp, 8
test eax, eax
jne 0x43a19c
push str._UsrName_
push ebx
mov edi, 0x104
mov esi, 0x9117c8
call fcn.005000e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x439f87
mov al, byte [ecx + 9]
add ecx, 0xa
cmp al, 0x3d
jne 0x439f87
mov al, byte [ecx]
test al, al
je 0x43a024
nop dword [eax]
cmp al, 0xd
je 0x43a024
cmp edi, 1
jle 0x43a024
inc ecx
mov byte [esi], al
inc esi
dec edi
mov al, byte [ecx]
test al, al
jne 0x43a010
push str._LicType_
mov byte [esi], 0
mov edi, 0x104
push ebx
mov esi, 0x9118d0
call fcn.005000e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x439f87
mov al, byte [ecx + 9]
add ecx, 0xa
cmp al, 0x3d
jne 0x439f87
mov al, byte [ecx]
test al, al
je 0x43a074
nop dword [eax]
cmp al, 0xd
je 0x43a074
cmp edi, 1
jle 0x43a074
inc ecx
mov byte [esi], al
inc esi
dec edi
mov al, byte [ecx]
test al, al
jne 0x43a060
push str._NumUser_
mov byte [esi], 0
mov edi, 0x104
push ebx
lea esi, [ebp - 0x108]
call fcn.005000e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x439f87
mov al, byte [ecx + 9]
add ecx, 0xa
cmp al, 0x3d
jne 0x439f87
mov al, byte [ecx]
test al, al
je 0x43a0c4
nop
cmp al, 0xd
je 0x43a0c4
cmp edi, 1
jle 0x43a0c4
inc ecx
mov byte [esi], al
inc esi
dec edi
mov al, byte [ecx]
test al, al
jne 0x43a0b0
mov byte [esi], 0
cmp byte [ebp - 0x108], 0x31
jne 0x43a0d9
cmp byte [ebp - 0x107], 0
je 0x43a11a
mov esi, 0x9118d0
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x43a0e1
lea eax, [ebp - 0x108]
sub esi, ecx
push eax
push 3
push 0xf006
mov ecx, 0x911330
call fcn.0042f4d0
push eax
mov eax, 0x104
sub eax, esi
push eax
lea eax, [esi + 0x9118d0]
push eax
call fcn.00407c70
add esp, 0x10
push str._Version_
push ebx
mov edi, 0x104
lea esi, [ebp - 0x108]
call fcn.005000e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x43a1d0
mov al, byte [ecx + 9]
add ecx, 0xa
cmp al, 0x3d
jne 0x43a1d0
mov al, byte [ecx]
test al, al
je 0x43a165
cmp al, 0xd
je 0x43a165
cmp edi, 1
jle 0x43a165
inc ecx
mov byte [esi], al
inc esi
dec edi
mov al, byte [ecx]
test al, al
jne 0x43a151
mov byte [esi], 0
cmp byte [ebp - 0x108], 0
je 0x43a1d0
push 0x61ef54
push 0x61ef50
lea eax, [ebp - 0x108]
push str._d._d
push eax
call fcn.00407cc0
mov eax, dword [0x61ef50]
add esp, 0x10
cmp eax, dword [0x90ff10]
jge 0x43a1d5
xor edi, edi
push dword [ebp - 0x130]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x43a49c
xor esi, esi
push ebx
call fcn.00503e53
add esp, 4
mov eax, esi
pop esi
pop ebx
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004fe8dc
mov esp, ebp
pop ebp
ret
mov eax, dword [0x61ef50]
cmp eax, 0x270f
jne 0x43a202
push 4
push 0xf006
mov ecx, 0x911330
call fcn.0042f4d0
push eax
push 0x104
push 0x9116c0
call fcn.00503df9
add esp, 0xc
jmp 0x43a21a
push eax
push str._d.x
push 0x104
push 0x9116c0
call fcn.00407c70
add esp, 0x10
push str._ExpDate_
push ebx
mov edi, 0x104
lea esi, [ebp - 0x108]
call fcn.005000e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x43a311
mov al, byte [ecx + 9]
add ecx, 0xa
cmp al, 0x3d
jne 0x43a311
mov al, byte [ecx]
test al, al
je 0x43a265
cmp al, 0xd
je 0x43a265
cmp edi, 1
jle 0x43a265
inc ecx
mov byte [esi], al
inc esi
dec edi
mov al, byte [ecx]
test al, al
jne 0x43a251
lea eax, [ebp - 0x144]
mov byte [esi], 0
push eax
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x108]
push str._d._d._d
push eax
call fcn.00407cc0
add esp, 0x14
cmp eax, 3
jne 0x43a311
mov eax, dword [ebp - 0x13c]
xorps xmm0, xmm0
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x140]
dec eax
movlpd qword [ebp - 0x12c], xmm0
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x144]
add eax, 0x64
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x12c]
push eax
movlpd qword [ebp - 0x114], xmm0
mov dword [ebp - 0x10c], 0
call fcn.005123ab
push 0
mov edi, eax
mov esi, edx
call fcn.0050d930
add esp, 8
cmp esi, edx
jl 0x43a19c
jg 0x43a311
cmp edi, eax
jb 0x43a19c
push str._OrderID_
push ebx
mov edi, 0x104
lea esi, [ebp - 0x108]
call fcn.005000e0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x439f87
mov al, byte [ecx + 9]
add ecx, 0xa
cmp al, 0x3d
jne 0x439f87
mov al, byte [ecx]
test al, al
je 0x43a35c
cmp al, 0xd
je 0x43a35c
cmp edi, 1
jle 0x43a35c
inc ecx
mov byte [esi], al
inc esi
dec edi
mov al, byte [ecx]
test al, al
jne 0x43a348
lea edi, [ebp - 0x108]
mov byte [esi], 0
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x43a368
sub edi, ecx
xor ecx, ecx
mov dword [ebp - 0x138], edi
test edi, edi
jle 0x43a38f
nop dword [eax]
lea eax, [ecx + 0x64]
xor byte [ebp + ecx - 0x108], al
inc ecx
cmp ecx, edi
jl 0x43a380
xor ebx, ebx
cmp byte [0x90cfe0], bl
je 0x43a41c
mov ecx, 0x90cfe0
mov esi, edi
lea edx, [ebp - 0x108]
sub esi, 4
jb 0x43a3c1
nop
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x43a3ca
add edx, 4
add ecx, 4
sub esi, 4
jae 0x43a3b0
cmp esi, 0xfffffffc
je 0x43a485
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x43a407
cmp esi, 0xfffffffd
je 0x43a485
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x43a407
cmp esi, 0xfffffffe
je 0x43a485
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x43a407
cmp esi, 0xffffffff
je 0x43a485
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x43a485
inc ebx
mov eax, ebx
shl eax, 5
cmp byte [eax + 0x90cfe0], 0
lea ecx, [eax + 0x90cfe0]
jne 0x43a3a2
mov ebx, dword [ebp - 0x134]
xor esi, esi
cmp dword [0x61ef58], esi
jle 0x43a45a
xor edi, edi
nop
mov ecx, dword [0x61ef5c]
add ecx, edi
push 0x104
lea eax, [ecx + 0x40]
push eax
push ecx
push ebx
call fcn.0043b140
inc esi
add esp, 0x10
add edi, 0x144
cmp esi, dword [0x61ef58]
jl 0x43a430
push dword [ebp - 0x148]
push ebx
call fcn.0043ba00
add esp, 8
test eax, eax
jne 0x43a19c
push dword [ebp - 0x130]
lea esi, [eax + 1]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43a1b4
push dword [ebp - 0x130]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 0x134]
jmp 0x43a1b2
pop esi
pop ebx
mov eax, edi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004fe8dc
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, edi
xor ecx, ebp
pop edi
call fcn.004fe8dc
mov esp, ebp
pop ebp
ret