Function at 0x100bdd30
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x34
mov ecx, dword [esp + 0x40]
push esi
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x44]
push 0
mov eax, dword [esi]
mov dword [esp + 0xc], 0xffffffff
lea edx, [edi + ecx - 4]
mov ecx, dword [esi + 4]
push edx
push ecx
mov word [esp + 0x18], 0x410
mov word [esp + 0x1a], 0x45f3
call dword [eax + 8]
push esi
call fcn.100ab8e0
mov edx, dword [esi]
add eax, edi
push 0
push eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 8]
push esi
call fcn.100ab840
and eax, 0xffff
add esp, 0x20
cmp eax, 0x64
jg 0x100be410
mov ecx, eax
dec eax
test ecx, ecx
je 0x100be410
inc eax
push ebx
push ebp
mov dword [esp + 0x48], eax
push esi
call fcn.100ab840
mov di, ax
push esi
and edi, 0xffff
call fcn.100ab8e0
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 0x18]
mov ebp, dword [esi]
add esp, 0xc
add eax, 4
push 0
push esi
mov dword [esp + 0x20], eax
call fcn.100ab8e0
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 4]
add esp, 4
add eax, edx
push eax
push ecx
call dword [ebp + 8]
mov edx, edi
add esp, 0xc
sar edx, 8
add edx, 8
or edx, 8
cmp edx, 0x38
jne 0x100bde13
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ebx
push ecx
call dword [eax + 0x18]
add esp, 4
push eax
push esi
call fcn.100bdd30
add esp, 0xc
cmp edi, 0x810
jne 0x100bde36
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 1
lea eax, [esi + 0x6515]
push 0x40
push eax
push ecx
call dword [edx]
add esp, 0x10
jmp 0x100be3ec
cmp edi, 0x80a
jne 0x100bde84
mov eax, dword [esi + 4]
mov edx, dword [esi]
lea edi, [esi + 0x6455]
push 1
push 0x40
push edi
push eax
call dword [edx]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi + 4]
mov edx, dword [esi]
not ecx
add ecx, 0xffffffc0
push 1
push ecx
push eax
call dword [edx + 8]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 1
lea edx, [esi + 0x6495]
push 0x40
push edx
push eax
call dword [ecx]
add esp, 0x2c
jmp 0x100be3ec
cmp edi, 0x1810
jne 0x100bdead
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 0xc
push edx
call dword [ecx + 8]
push esi
call fcn.100ab8e0
add esp, 0x10
mov dword [esi + 0x6610], eax
jmp 0x100be3ec
cmp edi, 0x1835
jne 0x100bdec9
push esi
call fcn.100ab8e0
add esp, 4
mov dword [esi + 0x65c0], eax
jmp 0x100be3ec
cmp edi, 0x2007
jne 0x100bdeee
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ecx
call dword [eax + 0x18]
add esp, 4
mov dword [esi + 0x6590], eax
mov dword [esi + 0x659c], ebx
jmp 0x100be3ec
cmp edi, 0x1818
jne 0x100bdf66
push esi
call fcn.100ab8e0
push esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0x40000000
call fcn.100ab8e0
push eax
call fcn.100ab950
fchs
fld qword [esp + 0x28]
fxch st(1)
call fcn.10098f90
fstp dword [esi + 0x6564]
push esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x40000000
call fcn.100ab8e0
push eax
call fcn.100ab950
fmul dword [0x10136e88]
fld qword [esp + 0x38]
fxch st(1)
add esp, 0x14
call fcn.10098f90
fstp dword [esi + 0x6568]
jmp 0x100be3ec
cmp edi, 0x102a
jne 0x100be0a9
push esi
call fcn.100ab8e0
push esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x40000000
call fcn.100ab840
and eax, 0xffff
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x1013e71c]
fsub dword [0x10137170]
fld qword [esp + 0x34]
fxch st(1)
call fcn.10098f90
fmul dword [0x10137220]
push esi
fstp dword [esi + 0x6560]
call fcn.100ab840
push esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0x40000000
call fcn.100ab840
movsx edx, ax
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
fmul dword [0x1013e718]
fld qword [esp + 0x44]
fxch st(1)
call fcn.10098f90
fstp dword [esi + 0x6568]
push esi
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0x40000000
call fcn.100ab840
movsx eax, ax
neg eax
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
fmul dword [0x1013e71c]
fld qword [esp + 0x50]
fxch st(1)
call fcn.10098f90
fstp dword [esi + 0x6564]
push esi
call fcn.100ab840
push esi
call fcn.100ab840
and eax, 0xffff
add esp, 0x1c
cmp eax, 0x11
mov dword [esp + 0x10], eax
jle 0x100be05b
mov dword [esp + 0x10], 0
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 0x20
push edx
call dword [ecx + 8]
fld dword [esi + 0x6564]
fcomp qword [0x1013e710]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x100be3ec
push esi
call fcn.100ab840
add esp, 4
and eax, 0xffff
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul dword [0x1013e70c]
fstp dword [esi + 0x6564]
jmp 0x100be3ec
cmp edi, 0x102c
jne 0x100be142
push esi
call fcn.100ab840
add esp, 4
cmp ax, 0x200
mov eax, dword [esi]
push 1
jbe 0x100be103
mov ecx, dword [esi + 4]
push 0x76
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.100ab840
and eax, 0xffff
mov edx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
xor edx, 2
inc edi
cmp edi, 4
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x100be0d6
jmp 0x100be3ec
mov ecx, dword [esi + 4]
push 0x62
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.100ab840
mov edx, edi
and eax, 0xffff
xor edx, 2
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
sar edx, 1
add esp, 4
xor edx, edi
inc edi
fstp dword [esi + edx*4 + 0xe6bc]
cmp edi, 4
jl 0x100be111
jmp 0x100be3ec
cmp edi, 0x32
jne 0x100be274
cmp ebx, 0x300
jne 0x100be19f
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 1
push 0x48
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.100ab840
and eax, 0xffff
mov edx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
sar edx, 1
xor edx, edi
inc edi
fdivr dword [0x1013e708]
cmp edi, 4
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x100be165
mov eax, dword [esp + 0x10]
test eax, eax
jmp 0x100be25f
fld dword [esi + 0xe6bc]
fcomp dword [0x10136e8c]
fnstsw ax
test ah, 0x40
je 0x100be3ec
push esi
call fcn.100ab840
add esp, 4
cmp ax, word [esp + 0x14]
jne 0x100be1f5
lea eax, [esi + 0x6495]
push str.Pro1
push eax
call fcn.1002ff40
add esp, 8
test eax, eax
mov eax, str.012346000000000000
jne 0x100be1e8
mov eax, str.01345:000000006008
mov ebx, dword [esp + 0x10]
movsx eax, byte [eax + ebx]
sub eax, 0x2e
jmp 0x100be20f
mov ebx, dword [esp + 0x10]
movsx eax, byte [ebx + str.023457000000006000]
sub eax, 0x30
xor ecx, ecx
mov word [esp + 0x16], cx
mov word [esp + 0x14], cx
mov ecx, dword [esi]
lea edx, [eax*8 + 0x4e]
mov eax, dword [esi + 4]
push 1
push edx
push eax
call dword [ecx + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.100ab840
mov ecx, edi
mov edx, edi
and ecx, 1
xor edx, 2
sar edx, 1
xor ax, word [esp + ecx*2 + 0x18]
add esp, 4
xor edx, edi
and eax, 0xffff
inc edi
mov dword [esp + 0x50], eax
cmp edi, 4
fild dword [esp + 0x50]
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x100be227
test ebx, ebx
jne 0x100be3ec
mov dword [esi + 0xe6bc], 0xbf800000
jmp 0x100be3ec
cmp edi, 0x10a9
jne 0x100be2dd
cmp ebx, 0x42
jle 0x100be293
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax + str.0134567028]
sub ecx, 0x30
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
push 1
lea ecx, [eax*8 + 2]
mov eax, dword [esi + 4]
push ecx
push eax
call dword [edx + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.100ab840
and eax, 0xffff
mov ecx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
sar ecx, 1
xor ecx, edi
inc edi
cmp edi, 4
fstp dword [esi + ecx*4 + 0xe6bc]
jl 0x100be2af
jmp 0x100be3ec
cmp edi, 0x1030
jne 0x100be307
mov ecx, dword [esp + 0x10]
mov edx, 0x18040
sar edx, cl
test dl, 1
je 0x100be3ec
push esi
call fcn.100bdc40
add esp, 4
jmp 0x100be3ec
cmp edi, 0x1031
jne 0x100be337
push esi
call fcn.100ab840
push esi
call fcn.100ab840
push esi
mov word [esi + 0x65fa], ax
call fcn.100ab840
add esp, 0xc
mov word [esi + 0x65f8], ax
jmp 0x100be3ec
cmp edi, 0x5029
jne 0x100be36f
mov eax, ebx
and ebx, 0xffff
sar eax, 0x10
mov dword [esp + 0x50], eax
cmp ebx, 2
fild dword [esp + 0x50]
fst dword [esi + 0x656c]
jne 0x100be3ea
fmul dword [0x1013e71c]
fstp dword [esi + 0x656c]
jmp 0x100be3ec
cmp edi, 0x5813
jne 0x100be388
push ebx
call fcn.100ab950
fstp dword [esi + 0x6558]
add esp, 4
jmp 0x100be3ec
cmp edi, 0x5814
jne 0x100be3a1
push ebx
call fcn.100ab950
fstp dword [esi + 0x655c]
add esp, 4
jmp 0x100be3ec
cmp edi, 0x5817
jne 0x100be3b1
mov dword [esi + 0x6574], ebx
jmp 0x100be3ec
cmp edi, 0x5834
jne 0x100be3c1
mov dword [esi + 0x6584], ebx
jmp 0x100be3ec
cmp edi, 0x580e
jne 0x100be3d1
mov dword [esi + 0x6570], ebx
jmp 0x100be3ec
cmp edi, 0x180e
jne 0x100be3ec
push esi
call fcn.100ab8e0
add esp, 4
mov dword [esi + 0x6570], eax
jmp 0x100be3ec
fstp st(0)
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0
push edx
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x54]
add esp, 0xc
dec eax
mov dword [esp + 0x48], eax
jne 0x100bdda4
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x34
ret