Function at 0x462220
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x84
mov ecx, 0x43
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov ebx, dword [eax]
mov eax, dword [edx]
xor edx, edx
cmp ebx, eax
mov dword [esp + 0x6c], eax
mov eax, dword [0x6c52c8]
cmove ebx, edx
neg eax
mov edi, dword [0x6c52a8]
mov esi, dword [esi]
add eax, esi
mov byte [0x6dfff4], cl
mov byte [0x6dfff6], cl
mov ecx, 0x20
mov byte [0x6dfff5], 0x44
mov byte [0x6dfff7], cl
mov byte [0x6dfff8], cl
mov byte [0x6dfff9], cl
mov byte [0x6dfffa], cl
mov byte [0x6dfffb], cl
mov byte [0x6dfffc], cl
mov byte [0x6dfffd], cl
mov byte [0x6dfffe], cl
mov byte [0x6dffff], cl
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], eax
test byte [0x76e5c0], 1
jne 0x4622d2
mov eax, edi
mov edx, dword [esp + 0x58]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x70], ecx
jmp 0x462689
mov eax, edi
mov edx, dword [esp + 0x58]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x70], ecx
test ecx, ecx
jle 0x462689
mov eax, dword [0x6c4820]
mov ecx, dword [0x6c4818]
mov edx, dword [0x6c47f8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
mov esi, dword [0x6c4828]
mov edi, dword [0x6c4854]
mov eax, dword [0x6c4850]
mov ecx, dword [0x6c4848]
mov dword [esp + 0x30], edx
mov edx, dword [0x6c4824]
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x70], 4
jl 0x4627f8
mov ecx, dword [esp + 0x5c]
imul ecx, eax
imul eax, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
add ecx, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
sub ecx, eax
mov dword [esp + 0x10], eax
lea edi, [esi*4]
sub ecx, edi
add ecx, 4
and ecx, 0xf
mov dword [esp + 0x3c], ecx
je 0x462388
test byte [esp + 0x3c], 3
jne 0x4627f8
mov eax, ecx
neg eax
add eax, 0x10
shr eax, 2
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
lea ecx, [eax + 4]
cmp ecx, dword [esp + 0x70]
jg 0x4627f8
mov edi, dword [esp + 0x70]
mov eax, edi
mov esi, dword [esp + 0x3c]
sub eax, esi
and eax, 3
neg eax
mov ecx, dword [esp + 0x10]
add eax, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x38], 0
lea ecx, [ecx + edi*4]
mov edi, dword [esp + 0x28]
sub dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x5c]
sub ecx, edx
shl edi, 2
imul ecx, dword [esp + 0x2c]
neg edi
add edi, dword [esp + 0x30]
add ecx, edi
mov dword [esp + 0x40], ecx
test esi, esi
mov esi, dword [esp + 0x38]
jbe 0x462427
mov dword [esp + 0x10], eax
xor ecx, ecx
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x40]
mov edi, dword [edx + ecx*4 + 4]
mov edx, dword [eax + ecx*4 + 4]
cmp ebx, edi
jne 0x46240d
cmp edx, dword [esp + 0x6c]
je 0x462417
cmp ebx, edx
jne 0x462418
cmp edi, dword [esp + 0x6c]
jne 0x462418
inc esi
inc ecx
cmp ecx, dword [esp + 0x3c]
jb 0x4623f7
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
movd xmm2, dword [esp + 0x6c]
movd xmm0, ebx
mov dword [esp + 0x14], ebx
pshufd xmm0, xmm0, 0
pxor xmm1, xmm1
pshufd xmm2, xmm2, 0
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
nop
movdqu xmm5, xmmword [ecx + edi*4 + 4]
movdqu xmm4, xmmword [ebx + edi*4 + 4]
movdqa xmm6, xmm0
movdqa xmm3, xmm2
pcmpeqd xmm6, xmm5
pcmpeqd xmm3, xmm4
pcmpeqd xmm7, xmm7
pand xmm6, xmm3
pcmpeqd xmm4, xmm0
pxor xmm7, xmm6
pcmpeqd xmm5, xmm2
pand xmm7, xmm4
add edi, 4
pand xmm7, xmm5
psubd xmm1, xmm6
psubd xmm1, xmm7
cmp edi, eax
jb 0x462450
mov ebx, dword [esp + 0x14]
cmp eax, dword [esp + 0x70]
jae 0x462518
mov dword [esp + 0x38], esi
neg edx
mov esi, dword [esp + 0x18]
neg esi
mov edi, dword [esp + 0x5c]
add esi, edi
imul esi, dword [esp + 0x1c]
add edx, edi
imul edx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
shl eax, 2
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov eax, dword [esp + 0x28]
add esi, ecx
shl eax, 2
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], esi
sub ecx, eax
add edx, ecx
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov esi, dword [edx + eax*4 + 4]
mov ecx, dword [edi + eax*4 + 4]
cmp ebx, esi
jne 0x4624ff
cmp ecx, dword [esp + 0x6c]
je 0x462509
cmp ebx, ecx
jne 0x46250d
cmp esi, dword [esp + 0x6c]
jne 0x46250d
inc dword [esp + 0x38]
inc eax
cmp eax, dword [esp + 0x70]
jb 0x4624ed
mov esi, dword [esp + 0x38]
movdqa xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movdqa xmm2, xmm1
psrlq xmm2, 0x20
paddd xmm1, xmm2
movd eax, xmm1
add eax, esi
cmp eax, 1
jle 0x462689
mov dword [esp + 0x10], 0
lea esi, [esp + 0x10]
mov dword [esi + 0x20], 0x2a
lea eax, [esp + 0x30]
mov dword [eax + 4], str.Inappropriate_use_of_obsolete_function_CDC
push 0x120
push eax
push 0x677370
push 0x8384ff00
push 0xffffffffffffffff
push esi
call fcn.005b4d50
mov dword [esp + 0x28], 0
lea eax, [esp + 0x50]
mov dword [eax], 0x2b
mov dword [eax + 4], str.to_measure_current_across_parallel_branches
push 0x120
push eax
push 0x677378
push 0x8384ff00
push 0xffffffffffffffff
push esi
call fcn.005b4d50
mov dword [esp + 0x40], 0
lea eax, [esp + 0x70]
mov dword [eax], 0xf
mov dword [eax + 4], str.between_nodes:
push 0x120
push eax
push 0x677380
push 0x8384ff00
push 0xffffffffffffffff
push esi
call fcn.005b4d50
mov dword [esp + 0xa8], ebx
lea eax, [esp + 0xa8]
push eax
push 0x677388
push esi
call fcn.005b6b00
mov eax, dword [esp + 0xc0]
lea edx, [esp + 0xbc]
mov dword [edx], eax
push edx
push 0x677390
push esi
call fcn.005b6b00
mov dword [esp + 0x70], 0
lea eax, [esp + 0xa8]
mov dword [eax], 0x31
mov dword [eax + 4], str.Use_CBR_array_to_measure_current_through_a_branch
push 0x120
push eax
push 0x677398
push 0x8384ff00
push 0xffffffffffffffff
push esi
call fcn.005b4d50
add esp, 0x78
mov dword [esp + 0x10], 0
lea eax, [esp + 0x50]
mov dword [eax], 0x28
mov dword [eax + 4], str.See_EMTDC_Help_on_Writing_Your_Own_Model
push 0x120
push eax
push 0x6773a0
push 0x8384ff00
push 0xffffffffffffffff
push esi
call fcn.005b4d50
add esp, 0x18
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x58]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
jle 0x462708
mov esi, dword [0x6c4824]
mov edx, 1
mov eax, dword [0x6c4818]
neg esi
shl eax, 2
mov edi, dword [0x6c47f8]
mov ecx, dword [esp + 0x5c]
add esi, ecx
sub edi, eax
mov eax, dword [0x6c4854]
neg eax
imul esi, dword [0x6c4820]
add eax, ecx
imul eax, dword [0x6c4850]
mov ecx, dword [0x6c4848]
add esi, edi
shl ecx, 2
mov edi, dword [0x6c4828]
sub edi, ecx
add eax, edi
mov edi, dword [esi + edx*4]
mov ecx, dword [eax + edx*4]
cmp ebx, edi
jne 0x4626f3
cmp ecx, dword [esp + 0x6c]
je 0x4627a7
cmp ebx, ecx
jne 0x462701
cmp edi, dword [esp + 0x6c]
je 0x4627cc
inc edx
cmp edx, dword [esp + 0x70]
jle 0x4626df
mov dword [esp + 0x10], 0
lea esi, [esp + 0x10]
mov dword [esi + 0x48], 0x17
lea eax, [esp + 0x58]
mov dword [eax + 4], str.No_branch_between_nodes
push 0x120
push eax
push 0x6773a8
push 0x8384ff00
push 0xffffffffffffffff
push esi
call fcn.005b4d50
mov dword [esp + 0x88], ebx
lea eax, [esp + 0x88]
push eax
push 0x6773b0
push esi
call fcn.005b6b00
mov eax, dword [esp + 0x90]
lea edx, [esp + 0x9c]
mov dword [edx], eax
push edx
push 0x6773b8
push esi
call fcn.005b6b00
add esp, 0x30
mov eax, 0x6dfff4
mov edx, 0x6773c0
mov ecx, 0xc
call fcn.004677b0
pxor xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
wait
add esp, 0x84
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x6c4d5c]
neg eax
add eax, dword [esp + 0x5c]
imul eax, dword [0x6c4d58]
sub edx, dword [0x6c4d50]
add eax, dword [0x6c4d30]
movsd xmm0, qword [eax + edx*8]
jmp 0x46278f
mov eax, dword [0x6c4d5c]
neg eax
add eax, dword [esp + 0x5c]
imul eax, dword [0x6c4d58]
sub edx, dword [0x6c4d50]
add eax, dword [0x6c4d30]
movsd xmm0, qword [eax + edx*8]
xorps xmm0, xmmword [0x677d00]
jmp 0x46278f
xor esi, esi
pxor xmm1, xmm1
xor eax, eax
jmp 0x46249b