Function at 0x42f600
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5adc46
mov eax, dword fs:[0]
push eax
sub esp, 0x81c
mov eax, dword [0x624394]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x720]
push eax
mov dword [ebp - 0x720], 0
call fcn.0043ae40
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x720]
mov esi, dword [eax - 0xc]
test esi, esi
jns 0x42f665
push 0x80070057
call fcn.004212c0
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, esi
or ecx, edx
jge 0x42f688
push esi
lea ecx, [ebp - 0x720]
call fcn.00420ff0
mov eax, dword [ebp - 0x720]
lea ecx, [esi + 1]
push ecx
push eax
call fcn.004e92ee
mov eax, dword [ebp - 0x720]
add esp, 8
cmp esi, dword [eax - 8]
jg 0x42f65b
mov dword [eax - 0xc], esi
xor ecx, ecx
mov eax, dword [ebp - 0x720]
mov word [eax + esi*2], cx
or ecx, 0xffffffff
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jne 0x42f6c5
xor bl, bl
jmp 0x4300f9
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.004e0970
push 0x208
lea eax, [ebp - 0x71c]
push 0
push eax
call fcn.004e0970
mov ecx, dword [0x6329f0]
lea ecx, [ecx - 0x10]
call fcn.00420e60
lea esi, [eax + 0x10]
mov dword [ebp - 0x724], esi
push 0x400
lea eax, [ebp - 0x514]
mov byte [ebp - 4], 1
push 0
push eax
call fcn.004e0970
mov ax, word [0x62da2c]
add esp, 0x24
mov word [ebp - 0x50c], ax
movq xmm0, qword [str._p_31___]
movq qword [ebp - 0x514], xmm0
mov al, byte [ebp - 0x514]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x514], al
mov al, byte [ebp - 0x513]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x513], al
mov al, byte [ebp - 0x512]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x512], al
mov al, byte [ebp - 0x511]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x511], al
mov al, byte [ebp - 0x510]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x510], al
mov al, byte [ebp - 0x50f]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x50f], al
mov al, byte [ebp - 0x50e]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x50e], al
mov al, byte [ebp - 0x50d]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x50d], al
mov al, byte [ebp - 0x50c]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
mov byte [ebp - 0x50c], al
mov al, byte [ebp - 0x50b]
xor al, 0x4c
xor al, 0x23
xor al, 0x1c
xor al, 0x38
xor al, 0x30
xor al, 0x29
xor al, 4
xor al, 0x4a
xor al, 0x40
xor al, 0x18
xor al, 0x36
xor al, 0x30
xor al, 0x2b
xor al, 0x2e
xor al, 0x41
xor al, 0x5e
xor al, 0x54
xor al, 0xe
xor al, 0x4e
xor al, 0x33
xor al, 0x2b
xor ecx, ecx
mov byte [ebp - 0x50b], al
nop word [eax + eax]
mov al, byte [ebp + ecx - 0x514]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x115], al
test al, al
jne 0x42f960
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
push 3
lea eax, [ebp - 0x114]
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x42f9a5
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x42f9c8
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x42fa1a
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fa1a
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x42fa1a
cmp dword [esi - 0xc], 0
jl 0x42fa1a
push 0x6134a4
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fa1a
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4300d2
push 0x400
lea eax, [ebp - 0x514]
push 0
push eax
call fcn.004e0970
mov eax, dword [0x62da1c]
add esp, 0xc
movq xmm0, qword [str._pgbd01___]
mov dword [ebp - 0x50c], eax
mov al, byte [0x62da20]
mov byte [ebp - 0x508], al
xor eax, eax
movq qword [ebp - 0x514], xmm0
nop dword [eax + eax]
xor byte [ebp + eax - 0x514], 0x54
inc eax
cmp eax, 0xd
jb 0x42fa60
xor ecx, ecx
mov al, byte [ebp + ecx - 0x514]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x115], al
test al, al
jne 0x42fa70
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
push 3
lea eax, [ebp - 0x114]
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x42fab5
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x42fad8
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x42fb2a
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fb2a
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x42fb2a
cmp dword [esi - 0xc], 0
jl 0x42fb2a
push 0x6134ac
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fb2a
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4300d2
push 0x400
lea eax, [ebp - 0x514]
push 0
push eax
call fcn.004e0970
mov ax, word [0x62da10]
add esp, 0xc
movq xmm0, qword [0x62da08]
mov word [ebp - 0x50c], ax
mov al, byte [0x62da12]
mov byte [ebp - 0x50a], al
xor eax, eax
movq qword [ebp - 0x514], xmm0
nop word [eax + eax]
xor byte [ebp + eax - 0x514], 0x54
inc eax
cmp eax, 0xb
jb 0x42fb70
xor ecx, ecx
mov al, byte [ebp + ecx - 0x514]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x115], al
test al, al
jne 0x42fb80
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
push 3
lea eax, [ebp - 0x114]
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x42fbc5
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x42fbe8
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x42fc3a
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fc3a
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x42fc3a
cmp dword [esi - 0xc], 0
jl 0x42fc3a
push 0x6134b4
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fc3a
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4300d2
push 0x400
lea eax, [ebp - 0x514]
push 0
push eax
call fcn.004e0970
mov eax, dword [0x62da04]
add esp, 0xc
movq xmm0, qword [str._p_:31____pgbd1___]
mov dword [ebp - 0x50c], eax
xor eax, eax
movq qword [ebp - 0x514], xmm0
nop dword [eax]
xor byte [ebp + eax - 0x514], 0x54
inc eax
cmp eax, 0xc
jb 0x42fc70
xor ecx, ecx
mov al, byte [ebp + ecx - 0x514]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x115], al
test al, al
jne 0x42fc80
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
push 3
lea eax, [ebp - 0x114]
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x42fcc5
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x42fce8
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x42fd3a
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fd3a
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x42fd3a
cmp dword [esi - 0xc], 0
jl 0x42fd3a
push 0x6134bc
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fd3a
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4300d2
push 0x400
lea eax, [ebp - 0x514]
push 0
push eax
call fcn.004e0970
mov ax, word [0x62d9f8]
add esp, 0xc
movq xmm0, qword [str._p_1___]
mov word [ebp - 0x50c], ax
mov al, byte [0x62d9fa]
mov byte [ebp - 0x50a], al
xor eax, eax
movq qword [ebp - 0x514], xmm0
nop word [eax + eax]
xor byte [ebp + eax - 0x514], 0x54
inc eax
cmp eax, 0xb
jb 0x42fd80
xor ecx, ecx
mov al, byte [ebp + ecx - 0x514]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x115], al
test al, al
jne 0x42fd90
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
push 3
lea eax, [ebp - 0x114]
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x42fdd5
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x42fdf8
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x42fe4a
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fe4a
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x42fe4a
cmp dword [esi - 0xc], 0
jl 0x42fe4a
push 0x6134c4
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42fe4a
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4300d2
push 0x400
lea eax, [ebp - 0x514]
push 0
push eax
call fcn.004e0970
mov ax, word [0x62d9ec]
add esp, 0xc
movq xmm0, qword [str._p711___]
mov word [ebp - 0x50c], ax
mov al, byte [0x62d9ee]
mov byte [ebp - 0x50a], al
xor eax, eax
movq qword [ebp - 0x514], xmm0
nop word [eax + eax]
xor byte [ebp + eax - 0x514], 0x54
inc eax
cmp eax, 0xb
jb 0x42fe90
xor ecx, ecx
mov al, byte [ebp + ecx - 0x514]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x115], al
test al, al
jne 0x42fea0
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
push 3
lea eax, [ebp - 0x114]
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x42fee5
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x42ff08
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x42ff5a
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42ff5a
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x42ff5a
cmp dword [esi - 0xc], 0
jl 0x42ff5a
push 0x6134cc
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x42ff5a
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4300d2
lea eax, [ebp - 0x114]
mov edx, 0xd
push eax
mov ecx, str._p_11___
call fcn.00420300
add esp, 4
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
lea eax, [ebp - 0x114]
push 3
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x42ffa3
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x42ffc6
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x430018
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x430018
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x430018
cmp dword [esi - 0xc], 0
jl 0x430018
push str.virer
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x430018
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x4300d2
lea eax, [ebp - 0x114]
mov edx, 0xb
push eax
mov ecx, str._p9_1___
call fcn.00420300
add esp, 4
lea eax, [ebp - 0x824]
mov dword [ebp - 0x828], eax
lea ecx, [ebp - 0x828]
lea eax, [ebp - 0x114]
push 3
push eax
call fcn.004206f0
mov edi, dword [ebp - 0x828]
lea edx, [ebp - 0x71c]
mov ecx, edi
sub edx, edi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x430061
lea eax, [ebp - 0x824]
cmp edi, eax
je 0x430084
push edi
call fcn.004e43de
add esp, 4
mov eax, dword [ebp - 0x720]
cmp dword [eax - 0xc], 0
jl 0x4300d6
lea ecx, [ebp - 0x71c]
push ecx
push eax
call fcn.004e062f
add esp, 8
test eax, eax
je 0x4300d6
sub eax, dword [ebp - 0x720]
sar eax, 1
cmp eax, 0xffffffff
je 0x4300d6
cmp dword [esi - 0xc], 0
jl 0x4300d6
push 0x6134e0
push esi
call fcn.004e062f
add esp, 8
test eax, eax
je 0x4300d6
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
je 0x4300d6
mov bl, 1
jmp 0x4300d8
xor bl, bl
or ecx, 0xffffffff
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, ecx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4300f9
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
or ecx, 0xffffffff
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x720]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x43011b
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004dda5e
mov esp, ebp
pop ebp
ret 4