Function at 0x10125800
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a4bd8
mov eax, dword fs:[0]
push eax
sub esp, 0xd4
push ebx
push esi
push edi
mov eax, dword [0x10290198]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x10125840
push ebx
call fcn.101934fa
add esp, 4
cmp eax, 0x20
je 0x10125863
push 0x1a2
push str.C:Code_tesseract_src_textordimagefind.cpp
push str.in_file__s__line__d
push 2
push str.pix___nullptr__pixGetDepth_pix___32
push 0x101f9b00
call sym.tesseract41.dll_public:_void___cdecl_ERRCODE::error_char_const___enum_TessErrorLogCode__char_const__const
add esp, 0x18
push ebx
call fcn.101934be
push ebx
mov dword [ebp - 0x24], eax
call fcn.101934dc
mov edi, dword [ebp + 8]
add esp, 8
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
mov eax, 0
movsx ecx, word [edi]
lea ebx, [esi + esi]
sub ecx, ebx
cmovns eax, ecx
movsx ecx, word [edi + 2]
cdq
idiv esi
lea esi, [esi + esi*2]
mov dword [ebp - 0x2c], eax
movsx eax, word [edi + 6]
dec eax
add eax, esi
cdq
idiv dword [ebp + 0x10]
mov edx, dword [ebp - 0x18]
cmp eax, edx
cmovl edx, eax
movsx eax, word [edi + 4]
dec esi
mov dword [ebp + 8], edx
add eax, esi
mov esi, dword [ebp - 0x24]
cdq
idiv dword [ebp + 0x10]
cmp eax, esi
cmovl esi, eax
sub ecx, ebx
mov eax, 0
cmovns eax, ecx
mov ecx, dword [ebp + 8]
cdq
mov ebx, ecx
idiv dword [ebp + 0x10]
mov edx, dword [ebp - 0x2c]
sub esi, edx
sub ebx, eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], ebx
cmp esi, 1
jl 0x10125f7c
cmp ebx, 1
jl 0x10125f7c
lea eax, [ebx + esi]
cmp eax, 4
jl 0x10125f7c
mov eax, dword [ebp - 0x18]
push ebx
push esi
sub eax, ecx
push eax
push edx
call fcn.101934c4
push 0
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
call fcn.101934e8
add esp, 0x1c
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x80]
push 0x100
push 0
call sym.tesseract41.dll_public:_void___thiscall_STATS::constructor_int__int_
push 0x100
push 0
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0
call sym.tesseract41.dll_public:_void___thiscall_STATS::constructor_int__int_
push 0x100
push 0
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 1
call sym.tesseract41.dll_public:_void___thiscall_STATS::constructor_int__int_
push dword [ebp - 0x1c]
mov byte [ebp - 4], 2
call fcn.101935c6
push dword [ebp - 0x1c]
mov dword [ebp + 0x10], eax
call fcn.101935b4
add esp, 8
cmp eax, esi
je 0x1012599d
push 0x1bb
push str.C:Code_tesseract_src_textordimagefind.cpp
push str.in_file__s__line__d
push 2
push str.pixGetWpl_scaled___width_pad
push 0x101f9b00
call sym.tesseract41.dll_public:_void___cdecl_ERRCODE::error_char_const___enum_TessErrorLogCode__char_const__const
add esp, 0x18
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 8], ebx
lea ebx, [ecx + 2]
mov dword [ebp + 0xc], esi
nop dword [eax]
lea eax, [ebx - 1]
xor ecx, 3
xor eax, 3
push 1
movzx esi, byte [eax]
mov eax, ebx
xor eax, 3
movzx edi, byte [eax]
movzx eax, byte [ecx]
lea ecx, [ebp - 0x80]
push eax
call sym.tesseract41.dll_public:_void___thiscall_STATS::add_int__int_
push 1
push esi
lea ecx, [ebp - 0x70]
call sym.tesseract41.dll_public:_void___thiscall_STATS::add_int__int_
push 1
push edi
lea ecx, [ebp - 0x60]
call sym.tesseract41.dll_public:_void___thiscall_STATS::add_int__int_
mov ecx, dword [ebp + 0x10]
add ebx, 4
add ecx, 4
sub dword [ebp + 0xc], 1
mov dword [ebp + 0x10], ecx
jne 0x101259b0
sub dword [ebp + 8], 1
mov esi, dword [ebp - 0x24]
mov dword [ebp + 0x10], ecx
jne 0x101259a3
vmovsd xmm0, qword [0x101af3d8]
sub esp, 8
lea ecx, [ebp - 0x80]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_double___thiscall_STATS::ile_double_const
vmovsd xmm0, qword [0x101f74e0]
sub esp, 8
lea ecx, [ebp - 0x80]
fstp qword [ebp - 0x14]
vcvttsd2si ebx, qword [ebp - 0x14]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_double___thiscall_STATS::ile_double_const
sub esp, 8
fstp qword [esp]
call fcn.101952d9
vmovsd xmm0, qword [0x101af3d8]
fstp qword [ebp - 0x14]
vcvttsd2si esi, qword [ebp - 0x14]
mov eax, esi
lea ecx, [ebp - 0x70]
sub eax, ebx
mov dword [ebp + 0x10], eax
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_double___thiscall_STATS::ile_double_const
vmovsd xmm0, qword [0x101f74e0]
sub esp, 8
lea ecx, [ebp - 0x70]
fstp qword [ebp - 0x14]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_double___thiscall_STATS::ile_double_const
sub esp, 8
fstp qword [esp]
call fcn.101952d9
vcvttsd2si ecx, qword [ebp - 0x14]
vcvttsd2si eax, qword [ebp - 0x14]
vmovsd xmm0, qword [0x101af3d8]
fstp qword [ebp - 0x50]
vcvttsd2si edx, qword [ebp - 0x50]
mov edi, edx
sub edi, ecx
cmp edi, dword [ebp + 0x10]
mov ecx, edi
vmovsd qword [esp], xmm0
cmovle ecx, dword [ebp + 0x10]
cmovle edx, esi
mov dword [ebp + 8], ecx
cmovle eax, ebx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x3c], eax
call sym.tesseract41.dll_public:_double___thiscall_STATS::ile_double_const
vmovsd xmm0, qword [0x101f74e0]
sub esp, 8
lea ecx, [ebp - 0x60]
fstp qword [ebp - 0x14]
vcvttsd2si esi, qword [ebp - 0x14]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_double___thiscall_STATS::ile_double_const
sub esp, 8
fstp qword [esp]
call fcn.101952d9
mov eax, dword [ebp + 0x10]
xor ebx, ebx
fstp qword [ebp - 0x14]
vcvttsd2si edx, qword [ebp - 0x14]
add esp, 8
sub edx, esi
cmp edi, eax
setg bl
xor ecx, ecx
cmp edi, eax
mov dword [ebp + 0x10], ebx
mov eax, dword [ebp + 8]
setle cl
mov dword [ebp + 0xc], ecx
cmp edx, eax
jle 0x10125b3b
mov ecx, 1
mov dword [ebp + 0x10], 2
mov dword [ebp + 0xc], ecx
xor edi, edi
mov ecx, 2
cmp edx, eax
cmovle esi, dword [ebp - 0x3c]
cmovle edi, ecx
vcvttsd2si ecx, qword [ebp - 0x14]
cmovle ecx, dword [ebp - 0x34]
cmovle edx, eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x4c], esi
cmp edx, 0x10
jl 0x10125e47
lea ecx, [ebp - 0xe0]
call sym.tesseract41.dll_public:_void___thiscall_LLSQ::clear_void_
lea ecx, [ebp - 0xb0]
call sym.tesseract41.dll_public:_void___thiscall_LLSQ::clear_void_
push dword [ebp - 0x1c]
call fcn.101935c6
add esp, 4
mov esi, eax
nop dword [eax]
mov edx, dword [ebp + 0xc]
mov eax, edi
mov ecx, dword [ebp + 0x10]
sub eax, edx
sub ecx, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], ecx
lea ebx, [esi + edx]
mov edx, dword [ebp - 0x24]
mov dword [ebp + 8], edx
lea esi, [esi + edx*4]
mov dword [ebp - 0x44], esi
add eax, ebx
sub esp, 0x10
xor eax, 3
vxorps xmm0, xmm0, xmm0
vxorps xmm1, xmm1, xmm1
movzx edi, byte [eax]
lea eax, [ecx + ebx]
xor eax, 3
lea ecx, [ebp - 0xe0]
movzx esi, byte [eax]
mov eax, ebx
xor eax, 3
vcvtsi2sd xmm1, xmm1, esi
movzx eax, byte [eax]
vcvtsi2sd xmm0, xmm0, eax
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
call sym.tesseract41.dll_public:_void___thiscall_LLSQ::add_double__double_
vxorps xmm0, xmm0, xmm0
sub esp, 0x10
lea ecx, [ebp - 0xb0]
vcvtsi2sd xmm0, xmm0, edi
vmovsd qword [esp + 8], xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, esi
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_void___thiscall_LLSQ::add_double__double_
mov eax, dword [ebp - 0x3c]
add ebx, 4
sub dword [ebp + 8], 1
mov ecx, dword [ebp - 0x34]
jne 0x10125bb1
sub dword [ebp - 0x2c], 1
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x18]
jne 0x10125b90
lea ecx, [ebp - 0xe0]
call sym.tesseract41.dll__m_LLSQ__QBENXZ
sub esp, 8
lea ecx, [ebp - 0xe0]
fstp qword [ebp - 0x48]
vmovsd xmm0, qword [ebp - 0x48]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll__c_LLSQ__QBENN_Z
fstp qword [ebp - 0x38]
lea ecx, [ebp - 0xb0]
call sym.tesseract41.dll__m_LLSQ__QBENXZ
sub esp, 8
lea ecx, [ebp - 0xb0]
fstp qword [ebp - 0x40]
vmovsd xmm0, qword [ebp - 0x40]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll__c_LLSQ__QBENN_Z
sub esp, 0x10
lea ecx, [ebp - 0xb0]
fstp qword [ebp - 0x30]
vmovsd xmm0, qword [ebp - 0x30]
vmovsd qword [esp + 8], xmm0
vmovsd xmm0, qword [ebp - 0x40]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_double___thiscall_LLSQ::rms_double__double_const
vmovsd xmm0, qword [ebp - 0x38]
sub esp, 0x10
lea ecx, [ebp - 0xe0]
fstp qword [ebp - 0x28]
vmovsd qword [esp + 8], xmm0
vmovsd xmm0, qword [ebp - 0x48]
vmovsd qword [esp], xmm0
call sym.tesseract41.dll_public:_double___thiscall_LLSQ::rms_double__double_const
fadd qword [ebp - 0x28]
vmovsd xmm1, qword [0x101eaa60]
fmul qword [0x101b97b0]
vxorps xmm3, xmm3, xmm3
vcvtsi2sd xmm3, xmm3, dword [ebp - 0x4c]
vxorpd xmm2, xmm2, xmm2
vcomisd xmm2, xmm3
fstp qword [ebp - 0x28]
jbe 0x10125d01
xor al, al
jmp 0x10125d0f
vcomisd xmm3, xmm1
jb 0x10125d0b
or al, 0xff
jmp 0x10125d0f
vcvttsd2si eax, xmm3
vmovsd xmm6, qword [ebp - 0x48]
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp + 0x10]
vmovsd xmm5, qword [0x101b0070]
vmulsd xmm0, xmm3, xmm6
vaddsd xmm0, xmm0, qword [ebp - 0x38]
vaddsd xmm0, xmm0, xmm5
vcomisd xmm2, xmm0
mov byte [edx + esi], al
jbe 0x10125d3c
xor al, al
jmp 0x10125d4a
vcomisd xmm0, xmm1
jb 0x10125d46
or al, 0xff
jmp 0x10125d4a
vcvttsd2si eax, xmm0
vmovsd xmm7, qword [ebp - 0x40]
mov ecx, dword [ebp + 0xc]
vmulsd xmm0, xmm3, xmm7
vaddsd xmm0, xmm0, qword [ebp - 0x30]
vaddsd xmm0, xmm0, xmm5
vcomisd xmm2, xmm0
mov byte [ecx + esi], al
jbe 0x10125d6c
xor bl, bl
jmp 0x10125d7b
vcomisd xmm0, xmm1
jb 0x10125d77
or bl, 0xff
jmp 0x10125d7b
vcvttsd2si ebx, xmm0
vmovsd xmm3, qword [ebp - 0x28]
vcomisd xmm2, xmm3
mov eax, edi
mov byte [eax + esi], bl
jbe 0x10125d8f
xor bl, bl
jmp 0x10125d9e
vcomisd xmm3, xmm1
jb 0x10125d9a
or bl, 0xff
jmp 0x10125d9e
vcvttsd2si ebx, xmm3
vxorps xmm4, xmm4, xmm4
vcvtsi2sd xmm4, xmm4, dword [ebp - 0x10]
vcomisd xmm2, xmm4
mov byte [esi + 3], bl
jbe 0x10125db4
xor bl, bl
jmp 0x10125dc3
vcomisd xmm4, xmm1
jb 0x10125dbf
or bl, 0xff
jmp 0x10125dc3
vcvttsd2si ebx, xmm4
mov edi, dword [ebp + 0x24]
vmulsd xmm0, xmm4, xmm6
vaddsd xmm0, xmm0, qword [ebp - 0x38]
vaddsd xmm0, xmm0, xmm5
vcomisd xmm2, xmm0
mov byte [edx + edi], bl
jbe 0x10125de0
xor dl, dl
jmp 0x10125def
vcomisd xmm0, xmm1
jb 0x10125deb
or dl, 0xff
jmp 0x10125def
vcvttsd2si edx, xmm0
vmulsd xmm0, xmm4, xmm7
vaddsd xmm0, xmm0, qword [ebp - 0x30]
vaddsd xmm0, xmm0, xmm5
vcomisd xmm2, xmm0
mov byte [ecx + edi], dl
jbe 0x10125e09
xor cl, cl
jmp 0x10125e18
vcomisd xmm0, xmm1
jb 0x10125e14
or cl, 0xff
jmp 0x10125e18
vcvttsd2si ecx, xmm0
vcomisd xmm2, xmm3
mov byte [eax + edi], cl
jbe 0x10125e2b
xor al, al
mov byte [edi + 3], al
jmp 0x10125eed
vcomisd xmm3, xmm1
jb 0x10125e3b
or al, 0xff
mov byte [edi + 3], al
jmp 0x10125eed
vcvttsd2si eax, xmm3
mov byte [edi + 3], al
jmp 0x10125eed
lea ecx, [ebp - 0x80]
call sym.tesseract41.dll_public:_double___thiscall_STATS::median_void_const
fstp qword [ebp - 0x14]
vmovsd xmm0, qword [ebp - 0x14]
vxorpd xmm1, xmm1, xmm1
vcomisd xmm1, xmm0
jbe 0x10125e65
xor al, al
jmp 0x10125e77
vcomisd xmm0, qword [0x101eaa60]
jb 0x10125e73
or al, 0xff
jmp 0x10125e77
vcvttsd2si eax, xmm0
mov esi, dword [ebp + 0x20]
lea ecx, [ebp - 0x70]
mov byte [esi], al
call sym.tesseract41.dll_public:_double___thiscall_STATS::median_void_const
fstp qword [ebp - 0x14]
vmovsd xmm0, qword [ebp - 0x14]
vxorpd xmm1, xmm1, xmm1
vcomisd xmm1, xmm0
jbe 0x10125e9a
xor al, al
jmp 0x10125eac
vcomisd xmm0, qword [0x101eaa60]
jb 0x10125ea8
or al, 0xff
jmp 0x10125eac
vcvttsd2si eax, xmm0
lea ecx, [ebp - 0x60]
mov byte [esi + 1], al
call sym.tesseract41.dll_public:_double___thiscall_STATS::median_void_const
fstp qword [ebp - 0x14]
vmovsd xmm0, qword [ebp - 0x14]
vxorpd xmm1, xmm1, xmm1
vcomisd xmm1, xmm0
jbe 0x10125ecd
xor al, al
jmp 0x10125edf
vcomisd xmm0, qword [0x101eaa60]
jb 0x10125edb
or al, 0xff
jmp 0x10125edf
vcvttsd2si eax, xmm0
mov edi, dword [ebp + 0x24]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov eax, dword [esi]
mov dword [edi], eax
mov ebx, dword [ebp + 0x14]
test ebx, ebx
je 0x10125f4f
lea eax, [ebp + 0x10]
push eax
movzx eax, byte [esi + 2]
push eax
movzx eax, byte [esi + 1]
push eax
movzx eax, byte [esi]
push eax
call fcn.10193698
push dword [ebp + 0x10]
push dword [ebp - 0x20]
push ebx
call fcn.10193692
lea eax, [ebp + 0x10]
push eax
movzx eax, byte [edi + 2]
push eax
movzx eax, byte [edi + 1]
push eax
movzx eax, byte [edi]
push eax
call fcn.10193698
push dword [ebp + 0x10]
push dword [ebp - 0x20]
push dword [ebp + 0x18]
call fcn.10193692
movzx eax, byte [esi + 3]
push eax
push dword [ebp - 0x20]
push dword [ebp + 0x1c]
call fcn.10193692
add esp, 0x44
lea eax, [ebp - 0x1c]
push eax
call fcn.101934d6
lea eax, [ebp - 0x20]
push eax
call fcn.101934ca
add esp, 8
lea ecx, [ebp - 0x60]
call sym.tesseract41.dll_public:_void___thiscall_STATS::destructor_void_
lea ecx, [ebp - 0x70]
call sym.tesseract41.dll_public:_void___thiscall_STATS::destructor_void_
lea ecx, [ebp - 0x80]
call sym.tesseract41.dll_public:_void___thiscall_STATS::destructor_void_
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret