Function at 0x4097f0
Capabilities:
Encrypt data using camellia

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x676800
mov eax, dword fs:[0]
push eax
sub esp, 0x1dc
mov eax, dword [0x71906c]
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 edi, ecx
mov dword [ebp - 4], 0
cmp dword [ebp + 0x18], 0
ja 0x409834
xor bl, bl
jmp 0x40a11f
lea ecx, [ebp - 0x1a0]
call fcn.004cf0cf
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 1
call fcn.004cf0cf
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 2
call fcn.004cf0cf
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 3
call fcn.004cf0cf
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 4
call fcn.004cf0cf
lea ecx, [ebp - 0x1d8]
mov byte [ebp - 4], 5
call fcn.004cf0cf
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0xf
mov byte [ebp - 0xf8], 0
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1e0], 0
mov byte [ebp - 4], 0xa
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
push 0
push dword [ebp + 0x18]
cmovae eax, dword [ebp + 8]
push eax
call fcn.004cc3ea
add esp, 0xc
test eax, eax
je 0x40995f
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.004069f0
lea eax, [ebp - 0x28]
push eax
call fcn.004cc256
add esp, 0x1c
lea ecx, [ebp + 8]
push eax
call fcn.004068d0
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x40995f
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409955
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a16f
push edx
push ecx
call fcn.0042d6b0
add esp, 8
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.004cf739
test al, al
jne 0x409979
xor bl, bl
jmp 0x40a051
push 9
push str.recordset
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
call fcn.00406e90
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x28]
push 9
push str.recordset
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [ebp - 0x168]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.004cf58c
test al, al
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x14]
sete bl
cmp edx, 0x10
jb 0x409a16
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409a0c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a174
push edx
push ecx
call fcn.0042d6b0
add esp, 8
test bl, bl
je 0x409a55
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x409a4e
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409a44
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a179
push edx
push ecx
call fcn.0042d6b0
add esp, 8
xor bl, bl
jmp 0x40a051
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x409a8d
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409a83
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a17e
push edx
push ecx
call fcn.0042d6b0
add esp, 8
push 7
push str.softmgr
lea ecx, [ebp - 0x70]
call fcn.00406e90
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x168]
call fcn.004cf58c
test al, al
je 0x409ed1
push 0x60
call fcn.0042d6e1
push 0x60
mov esi, eax
push 0
push esi
call fcn.00507100
add esp, 0x10
mov ecx, esi
call fcn.0040a1c0
push 3
push 0x7007f4
lea ecx, [ebp - 0x28]
mov dword [edi + 0x4c], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004cf63d
mov byte [ebp - 4], 0xa
mov bl, al
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409b4c
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409b42
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a183
push edx
push ecx
call fcn.0042d6b0
add esp, 8
test bl, bl
je 0x409b66
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.004069f0
mov ecx, dword [edi + 0x4c]
call fcn.00408d10
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 4
cmovae eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x30], 0
push str.name
mov dword [ebp - 0x18], 0
mov byte [eax], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004cf63d
mov byte [ebp - 4], 0xa
mov bl, al
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409bed
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409be3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a188
push edx
push ecx
call fcn.0042d6b0
add esp, 8
test bl, bl
je 0x409c07
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.004069f0
mov ecx, dword [edi + 0x4c]
call fcn.00408da0
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
push 7
cmovae eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x30], 0
push str.regname
mov dword [ebp - 0x18], 0
mov byte [eax], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004cf63d
mov byte [ebp - 4], 0xa
mov bl, al
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409c8e
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409c84
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a18d
push edx
push ecx
call fcn.0042d6b0
add esp, 8
test bl, bl
je 0x409cec
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
push 1
push 0x3b
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0x10
push eax
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.004069f0
call fcn.004cc542
mov ecx, dword [edi + 0x4c]
add esp, 0x24
add ecx, 0x54
push dword [ebp - 0x1dc]
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
call fcn.0040b6a0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xa
call fcn.0040b190
push 3
push 0x700808
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004cf58c
mov byte [ebp - 4], 0xa
mov bl, al
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409d61
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409d57
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a192
push edx
push ecx
call fcn.0042d6b0
add esp, 8
test bl, bl
je 0x409d8a
lea ecx, [ebp - 0xa8]
call fcn.00408fd0
mov esi, eax
test esi, esi
je 0x409d8a
push 3
push 0x700808
mov ecx, esi
call fcn.00406e90
mov ecx, dword [edi + 0x4c]
mov dword [ecx + 0x48], esi
lea ecx, [ebp - 0xa8]
call fcn.004cf4a7
push 3
push 0x70080c
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004cf58c
mov byte [ebp - 4], 0xa
mov bl, al
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409e0a
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409e00
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a197
push edx
push ecx
call fcn.0042d6b0
add esp, 8
test bl, bl
je 0x409e33
lea ecx, [ebp - 0xa8]
call fcn.00408fd0
mov esi, eax
test esi, esi
je 0x409e33
push 3
push 0x70080c
mov ecx, esi
call fcn.00406e90
mov ecx, dword [edi + 0x4c]
mov dword [ecx + 0x4c], esi
push 3
push 0x700810
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xe0]
call fcn.004cf58c
mov byte [ebp - 4], 0xa
mov bl, al
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409ea8
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409e9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a19c
push edx
push ecx
call fcn.0042d6b0
add esp, 8
test bl, bl
je 0x409ed1
lea ecx, [ebp - 0xa8]
call fcn.00408fd0
mov esi, eax
test esi, esi
je 0x409ed1
push 3
push 0x700810
mov ecx, esi
call fcn.00406e90
mov ecx, dword [edi + 0x4c]
mov dword [ecx + 0x50], esi
push 7
push str.channel
lea ecx, [ebp - 0x70]
call fcn.00406e90
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x168]
call fcn.004cf58c
test al, al
je 0x40a04a
push 3
push 0x70081c
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [edi + 4]
mov byte [ebp - 4], 0x14
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x130]
call fcn.004cf63d
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409f6e
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409f64
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a1a1
push edx
push ecx
call fcn.0042d6b0
add esp, 8
push 3
push 0x700820
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [edi + 0x1c]
mov byte [ebp - 4], 0x15
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x130]
call fcn.004cf63d
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x409fde
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409fd4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a1a6
push edx
push ecx
call fcn.0042d6b0
add esp, 8
push 5
push str.refer
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00406e90
lea eax, [edi + 0x34]
mov byte [ebp - 4], 0x16
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x130]
call fcn.004cf63d
mov edx, dword [ebp - 0x14]
cmp edx, 0x10
jb 0x40a04a
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a040
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a1ab
push edx
push ecx
call fcn.0042d6b0
add esp, 8
cmp dword [edi + 0x4c], 0
setne bl
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x40a085
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a07b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a1b0
push edx
push ecx
call fcn.0042d6b0
add esp, 8
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 0x10
jb 0x40a0cb
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a0c1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a1b5
push edx
push ecx
call fcn.0042d6b0
add esp, 8
lea ecx, [ebp - 0x1d8]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
call fcn.004cf185
lea ecx, [ebp - 0xa8]
call fcn.004cf185
lea ecx, [ebp - 0x130]
call fcn.004cf185
lea ecx, [ebp - 0xe0]
call fcn.004cf185
lea ecx, [ebp - 0x168]
call fcn.004cf185
lea ecx, [ebp - 0x1a0]
call fcn.004cf185
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x40a14f
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a145
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a1ba
push edx
push ecx
call fcn.0042d6b0
add esp, 8
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.0042d065
mov esp, ebp
pop ebp
ret 0x18
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
call fcn.0050cc3e
int3