Function at 0x4253a0
Capabilities:
Encode data using xor

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x4253d0
test dword [0x87ed4c], 0xffffffff
jne 0x4256b0
call fcn.007663a0
jmp fcn.004253a0
push edi
push esi
push ebp
push ebx
sub esp, 0x34
mov esi, ecx
mov ebx, edx
mov ebp, eax
mov ecx, dword [ebp]
movzx edx, byte [ecx + 0x7c]
test edx, edx
je 0x425683
mov edx, esi
mov eax, edx
test esi, esi
je 0x42567c
movsx edi, byte [esi]
test edi, edi
je 0x425407
inc edx
movsx edi, byte [edx]
test edi, edi
jne 0x4253ff
sub edx, esi
and edx, 0x3fffffff
mov edi, dword [ecx + 4]
mov dword [esp + 0x2c], 0
test edi, edi
jle 0x425569
mov ecx, dword [ecx + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xc], esi
mov edi, ebx
xor edi, 1
jmp 0x425456
mov edi, ebx
shl edi, 4
test ebp, ebp
je 0x4254bc
mov esi, dword [edi + ecx]
lea eax, [ebp + 1]
movzx edx, byte [ebp]
test edx, edx
je 0x425666
movzx ebp, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx ebp, byte [ebp + 0x789b60]
cmp edx, ebp
jne 0x42565b
movzx edx, byte [eax]
inc esi
inc eax
test edx, edx
jne 0x42546f
mov ebp, dword [esp + 0x54]
movzx eax, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
cmp eax, edx
je 0x4254bc
inc ebx
cmp ebx, dword [esp + 0x30]
jge 0x42555d
cmp ebx, 2
jl 0x42544d
jmp 0x425454
mov edx, dword [edi + ecx + 0xc]
mov esi, dword [edx + 0x10]
test esi, esi
je 0x425525
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x24], eax
xor eax, eax
test edi, edi
jle 0x425504
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x24]
lea ebp, [eax*8]
xor ebp, eax
movzx eax, byte [ebx]
inc ebx
movzx eax, byte [eax + 0x789b60]
xor eax, ebp
dec edi
test edi, edi
jg 0x4254e1
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x54]
mov edi, dword [edx + 4]
xor edx, edx
div edi
mov eax, dword [esi + edx*8 + 4]
mov edx, dword [esi + edx*8]
mov esi, 1
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
jmp 0x42553c
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 8]
mov esi, 1
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
test edx, edx
mov ebx, edx
cmovne ebx, esi
dec edx
test ebx, ebx
je 0x425642
test eax, eax
je 0x425642
cmp ecx, dword [eax + 0x10]
je 0x4255b5
mov eax, dword [eax]
jmp 0x42553c
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov eax, str.no_such_view
test ebx, ebx
mov edx, str.no_such_table
cmovne edx, eax
cmp dword [esp + 0x54], 0
je 0x4255a3
push esi
push dword [esp + 0x58]
push edx
push str._s:__s._s
push ebp
call fcn.005860f0
add esp, 0x14
mov byte [ebp + 0x12], 1
mov eax, dword [esp + 0x2c]
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret
push esi
push edx
push str._s:__s
push ebp
call fcn.005860f0
add esp, 0x10
jmp 0x425593
mov ebp, dword [eax + 0xc]
mov ebx, dword [esp + 0x20]
mov edi, ecx
mov dword [esp + 8], edx
jmp 0x4255c6
inc ebp
inc ebx
xor edx, edx
test edi, edi
cmovg edx, esi
dec edi
test edx, edx
je 0x425638
movzx edx, byte [ebp]
test edx, edx
je 0x425638
movzx edx, byte [edx + 0x789b60]
movzx ecx, byte [ebx]
movzx ecx, byte [ecx + 0x789b60]
cmp edx, ecx
je 0x4255c4
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
test edi, edi
js 0x425618
movzx edi, byte [ebp]
movzx ebp, byte [edi + 0x789b60]
movzx ebx, byte [ebx]
movzx ebx, byte [ebx + 0x789b60]
cmp ebx, ebp
jne 0x425559
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x54]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x425597
jmp 0x4254aa
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
jmp 0x4255f7
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x2c], 0
jmp 0x4254aa
mov eax, ebp
mov ebp, dword [esp + 0x54]
jmp 0x4254a6
movzx eax, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
jmp 0x4254a6
xor edx, edx
jmp 0x42540f
lea edx, [ebp + 8]
mov eax, ecx
call fcn.0058cf20
test eax, eax
je 0x4256a1
inc dword [ebp + 0x40]
mov dword [ebp + 4], eax
xor eax, eax
add esp, 0x34
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [ebp]
jmp 0x4253ec
push edi
push esi
push ebp
push ebx
sub esp, 0x30
mov esi, ecx
mov ebx, edx
mov ebp, eax
mov ecx, dword [ebp]
movzx edx, byte [ecx + 0x7c]
test edx, edx
je 0x425962
mov edx, esi
mov eax, edx
test esi, esi
je 0x42595b
movsx edi, byte [esi]
test edi, edi
je 0x4256e7
inc edx
movsx edi, byte [edx]
test edi, edi
jne 0x4256df
sub edx, esi
and edx, 0x3fffffff
mov edi, dword [ecx + 4]
mov dword [esp + 0x28], 0
test edi, edi
jle 0x425847
mov dword [esp + 0x1c], 0
mov ecx, dword [ecx + 8]
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x50]
mov edi, ebx
xor edi, 1
jmp 0x425736
mov edi, ebx
shl edi, 4
test ebp, ebp
je 0x42579c
mov esi, dword [edi + ecx]
lea eax, [ebp + 1]
movzx edx, byte [ebp]
test edx, edx
je 0x425945
movzx ebp, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx ebp, byte [ebp + 0x789b60]
cmp edx, ebp
jne 0x42593a
inc esi
movzx edx, byte [eax]
inc eax
test edx, edx
jne 0x42574f
mov ebp, dword [esp + 0x50]
movzx eax, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
cmp eax, edx
je 0x42579c
inc ebx
cmp ebx, dword [esp + 0x2c]
jge 0x42583b
cmp ebx, 2
jl 0x42572d
jmp 0x425734
mov edx, dword [edi + ecx + 0xc]
mov esi, dword [edx + 0x10]
test esi, esi
je 0x425804
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x14]
xor eax, eax
test edi, edi
jle 0x4257e4
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x20]
lea ebp, [eax*8]
xor ebp, eax
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x789b60]
xor eax, ebp
inc ebx
dec edi
test edi, edi
jg 0x4257c1
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x50]
mov edi, dword [edx + 4]
xor edx, edx
div edi
mov eax, dword [esi + edx*8 + 4]
mov esi, dword [esi + edx*8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x42581a
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
xor edx, edx
test esi, esi
setne dl
dec esi
test edx, edx
je 0x425921
test eax, eax
je 0x425921
cmp ebx, dword [eax + 0x10]
je 0x425894
mov eax, dword [eax]
jmp 0x42581a
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 8]
test ebx, ebx
je 0x425852
mov eax, str.no_such_view
jmp 0x425857
mov eax, str.no_such_table
cmp dword [esp + 0x50], 0
je 0x425882
push esi
push dword [esp + 0x54]
push eax
push str._s:__s._s
push ebp
call fcn.005860f0
add esp, 0x14
mov byte [ebp + 0x12], 1
mov eax, dword [esp + 0x28]
add esp, 0x30
pop ebx
pop ebp
pop esi
pop edi
ret
push esi
push eax
push str._s:__s
push ebp
call fcn.005860f0
add esp, 0x10
jmp 0x425872
mov edx, dword [eax + 0xc]
mov edi, ebx
mov ebp, ecx
mov ecx, edx
jmp 0x4258a1
inc ecx
inc ebp
xor edx, edx
test edi, edi
setg dl
dec edi
test edx, edx
je 0x425915
movzx ebx, byte [ecx]
test ebx, ebx
je 0x425915
movzx edx, byte [ebx + 0x789b60]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0x789b60]
cmp edx, ebx
je 0x42589f
mov edx, ecx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test edi, edi
js 0x4258f5
movzx edi, byte [edx]
movzx edx, byte [edi + 0x789b60]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0x789b60]
cmp ebp, edx
jne 0x425837
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x50]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x425876
jmp 0x42578a
mov edx, ecx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x4258d4
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], 0
jmp 0x42578a
mov eax, ebp
mov ebp, dword [esp + 0x50]
jmp 0x425786
movzx eax, byte [esi]
movzx edx, byte [edx + 0x789b60]
movzx eax, byte [eax + 0x789b60]
jmp 0x425786
xor edx, edx
jmp 0x4256ef
lea edx, [ebp + 8]
mov eax, ecx
call fcn.0058cf20
test eax, eax
je 0x425980
mov dword [ebp + 4], eax
inc dword [ebp + 0x40]
xor eax, eax
add esp, 0x30
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [ebp]
jmp 0x4256cc