Function at 0x40cfc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
xor esi, esi
push ebx
sub esp, 0x8ac
xor ebx, ebx
mov dword [ebp - 0x880], esi
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x87c], ebx
mov dword [esp], 0xe
lea eax, [edx + edx*4]
shl eax, 2
mov dword [esp + 4], eax
call fcn.0040dc20
mov dword [ebp - 0x82c], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x24]
mov dword [esp], eax
call fcn.0040dc00
mov ecx, dword [ebp - 0x82c]
mov edx, eax
xor eax, eax
test ecx, ecx
je 0x40d432
mov ebx, dword [ebp + 8]
xor esi, esi
mov ecx, dword [ebx + 8]
mov eax, ecx
shr eax, 0x1f
lea eax, [ecx + eax]
sar eax, 1
cmp eax, 0
jle 0x40d088
mov ebx, eax
lea esi, [esi]
lea edi, [edi]
fld dword [edx + esi*4]
lea eax, [esi + ebx]
fld dword [edx + eax*4]
fxch st(1)
fmul dword [edx + esi*4 + 0x800]
fxch st(1)
fmul dword [edx + eax*4 + 0x800]
fsubp st(1)
fstp dword [ebp + esi*8 - 0x818]
fld dword [edx + esi*4]
fld dword [edx + eax*4]
fmul dword [edx + esi*4 + 0x800]
fxch st(1)
fmul dword [edx + eax*4 + 0x800]
faddp st(1)
fstp dword [ebp + esi*8 - 0x814]
inc esi
cmp ebx, esi
jg 0x40d040
mov dword [esp], 8
lea eax, [ecx*8]
mov dword [esp + 4], eax
call fcn.0040dc20
mov edx, dword [ebp + 8]
mov edi, eax
mov eax, dword [edx + 8]
mov dword [esp], 9
shl eax, 3
mov dword [esp + 4], eax
call fcn.0040dc20
mov dword [ebp - 0x830], eax
xor eax, eax
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
mov eax, 1
mov dword [esp + 4], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
mov dword [esp], eax
call fcn.0040e8a0
mov dword [ebp - 0x834], eax
mov eax, dword [ebp - 0x830]
test edi, edi
sete dl
test eax, eax
sete al
or eax, edx
test al, 1
jne 0x40d35a
mov eax, dword [ebp - 0x834]
test eax, eax
je 0x40d35a
mov edx, dword [ebp + 8]
mov dword [esp], edx
call fcn.0040cf30
mov ecx, dword [ebp + 8]
mov edx, 0
mov esi, dword [ecx + 0x10]
mov ebx, dword [ecx + 8]
mov eax, dword [esi]
mov dword [ebp - 0x838], ebx
mov dword [edi + 4], edx
mov dword [edi], eax
mov eax, ebx
shr eax, 0x1f
add eax, ebx
sar eax, 1
mov ebx, 1
mov dword [edi + eax*8], edx
cmp eax, 1
mov dword [edi + eax*8 + 4], edx
jle 0x40d190
mov dword [ebp - 0x83c], eax
mov eax, dword [esi + ebx*4]
mov edx, dword [ebp - 0x838]
mov dword [edi + ebx*8], eax
mov eax, dword [ebp - 0x83c]
sub edx, ebx
lea ecx, [ebx + eax]
mov eax, dword [esi + ecx*4]
mov dword [edi + ebx*8 + 4], eax
mov eax, dword [esi + ebx*4]
inc ebx
mov dword [edi + edx*8], eax
mov eax, dword [esi + ecx*4]
xor eax, 0x80000000
cmp dword [ebp - 0x83c], ebx
mov dword [edi + edx*8 + 4], eax
jg 0x40d157
mov edx, dword [ebp - 0x830]
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x834]
mov dword [esp], ecx
call fcn.0040eb00
fld dword [0x42bfd0]
xor ecx, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebx]
fsubr dword [eax + 0x1c]
mov dword [ebp - 0x840], ebx
mov ebx, dword [eax + 8]
mov eax, dword [edx + 4]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
push eax
fild dword [esp]
add esp, 4
fnstcw word [ebp - 0x81e]
movzx eax, word [ebp - 0x81e]
or ax, 0xc00
faddp st(1)
mov word [ebp - 0x820], ax
fldcw word [ebp - 0x820]
fistp dword [ebp - 0x824]
fldcw word [ebp - 0x81e]
mov eax, dword [ebp - 0x824]
lea eax, [ebx + eax]
cdq
idiv ebx
cmp ecx, ebx
mov esi, edx
jge 0x40d244
push ebx
fild dword [esp]
add esp, 4
lea eax, [ecx + esi]
cdq
idiv ebx
mov eax, dword [ebp - 0x830]
fld dword [eax + edx*8]
mov edx, dword [ebp - 0x840]
fmul st(1)
fstp dword [edx + ecx*4]
inc ecx
cmp ecx, ebx
jl 0x40d223
fstp st(0)
mov ecx, dword [ebp - 0x834]
mov dword [esp], ecx
call fcn.0040dc30
mov dword [esp], edi
call fcn.0040dc30
mov ebx, dword [ebp - 0x830]
mov dword [esp], ebx
call fcn.0040dc30
mov edx, dword [ebp + 8]
xor eax, eax
mov ecx, dword [edx + 8]
cmp ecx, 0
jle 0x40d295
mov ebx, edx
mov ebx, dword [ebx + 0xc]
mov edx, dword [edx]
mov dword [ebp - 0x884], ebx
fld dword [edx + eax*4]
mov ebx, dword [ebp - 0x884]
fmul st(0)
fstp dword [ebx + eax*4]
inc eax
cmp ecx, eax
jg 0x40d282
mov dword [esp], 0xa
mov ebx, dword [0x4116b4]
add ecx, ebx
lea eax, [ecx*4 - 4]
mov dword [esp + 4], eax
call fcn.0040dc20
mov dword [ebp - 0x844], eax
mov edx, dword [ebp - 0x844]
mov eax, 1
test edx, edx
je 0x40d39b
mov eax, dword [ebp + 8]
xor esi, esi
mov edx, dword [ebp + 8]
mov edi, dword [0x4116b4]
mov eax, dword [eax + 0xc]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x884], eax
lea eax, [ecx + edi - 1]
cmp eax, 0
jle 0x40d7e5
mov dword [ebp - 0x848], eax
fldz
mov ebx, dword [ebp - 0x844]
fld st(0)
fst dword [ebx + esi*4]
xor ebx, ebx
jmp 0x40d32e
mov eax, dword [ebp - 0x884]
fld dword [eax + edx*4]
mov edx, dword [ebp - 0x844]
fmul dword [ebx*4 + 0x411690]
inc ebx
faddp st(2)
fld st(1)
fstp dword [edx + esi*4]
cmp ebx, edi
jge 0x40d7d4
mov eax, esi
sub eax, ebx
cdq
idiv ecx
test edx, edx
jns 0x40d310
jmp 0x40d350
add edx, ecx
jns 0x40d310
add edx, ecx
js 0x40d350
jmp 0x40d310
test edi, edi
je 0x40d366
mov dword [esp], edi
call fcn.0040dc30
mov edi, dword [ebp - 0x830]
test edi, edi
je 0x40d37e
mov ebx, dword [ebp - 0x830]
mov dword [esp], ebx
call fcn.0040dc30
mov esi, dword [ebp - 0x834]
test esi, esi
je 0x40d396
mov eax, dword [ebp - 0x834]
mov dword [esp], eax
call fcn.0040dc30
mov eax, 1
test eax, eax
mov esi, eax
jne 0x40d7c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [ebp - 0x84c], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], 6
shl eax, 4
mov dword [esp + 4], eax
call fcn.0040dc20
mov dword [ebp - 0x854], eax
mov eax, dword [ebp - 0x84c]
mov dword [esp], 7
shl eax, 2
mov dword [esp + 4], eax
call fcn.0040dc20
mov edi, dword [ebp - 0x854]
mov ebx, eax
test edi, edi
sete dl
test eax, eax
sete al
or eax, edx
test al, 1
je 0x40d43d
mov ecx, dword [ebp - 0x854]
test ecx, ecx
je 0x40d416
mov edx, dword [ebp - 0x854]
mov dword [esp], edx
call fcn.0040dc30
test ebx, ebx
je 0x40d422
mov dword [esp], ebx
call fcn.0040dc30
mov ecx, dword [ebp - 0x82c]
mov dword [esp], ecx
call fcn.0040dc30
xor eax, eax
add esp, 0x8ac
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
xor edi, edi
mov ecx, dword [ebp - 0x854]
cmp esi, dword [ebp - 0x84c]
mov dword [ebp - 0x850], edx
mov dword [ecx], 0
jge 0x40d55a
mov edx, dword [ebp + 0x10]
lea eax, [edx*4 - 1]
cmp eax, 0
jle 0x40d55a
mov esi, eax
jmp 0x40d4c3
mov eax, dword [ebp - 0x854]
mov ecx, dword [ebp - 0x850]
mov ecx, dword [eax + ecx*4]
fld dword [ebx + ecx*4]
mov dword [ebp - 0x890], ecx
fucomp st(1)
fnstsw ax
sahf
jbe 0x40d522
fstp st(0)
mov edx, dword [ebp - 0x850]
mov ecx, dword [ebp - 0x854]
mov dword [ecx + edx*4], edi
inc edi
cmp edi, dword [ebp - 0x84c]
jge 0x40d55a
cmp esi, dword [ebp - 0x850]
jle 0x40d55a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc]
fld dword [eax + edi*4]
fstp qword [esp]
call sub.msvcrt.dll_log10
fmul dword [0x42bfd4]
test byte [ebp - 0x850], 1
fstp dword [ebp - 0x81c]
fld dword [ebp - 0x81c]
fst dword [ebx + edi*4]
je 0x40d476
mov eax, dword [ebp - 0x850]
mov edx, dword [ebp - 0x854]
mov eax, dword [edx + eax*4]
fld dword [ebx + eax*4]
fxch st(1)
mov dword [ebp - 0x890], eax
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jbe 0x40d522
fstp st(0)
mov ecx, dword [ebp - 0x850]
mov dword [edx + ecx*4], edi
jmp 0x40d4aa
mov eax, dword [ebp - 0x890]
fsub dword [ebx + eax*4]
fabs
fld qword [0x42bfe8]
fxch st(1)
fucompp
fnstsw ax
sahf
jbe 0x40d4aa
inc dword [ebp - 0x850]
mov edx, dword [ebp - 0x854]
mov eax, dword [ebp - 0x850]
mov dword [edx + eax*4], edi
jmp 0x40d4aa
mov dword [esp], ebx
call fcn.0040dc30
mov edi, dword [ebp - 0x854]
test edi, edi
je 0x40d422
xor eax, eax
mov ebx, dword [ebp + 0x10]
mov esi, 1
mov dword [ebp - 0x828], eax
mov eax, dword [ebp + 0x10]
add eax, eax
dec eax
setg dl
xor eax, eax
cmp dword [ebp - 0x828], ebx
setl al
test edx, eax
je 0x40d624
xor eax, eax
mov dword [ebp - 0x888], eax
jmp 0x40d5d4
fld dword [edx + ebx*4]
fxch st(1)
fucompp
fnstsw ax
sahf
ja 0x40d63d
mov eax, dword [ebp + 0x10]
inc esi
add eax, eax
cmp eax, esi
mov eax, dword [ebp + 0x10]
setg dl
cmp dword [ebp - 0x828], eax
setl al
movzx eax, al
test edx, eax
je 0x40d624
mov eax, dword [edi + esi*4]
mov ecx, dword [edi + esi*4 - 4]
cmp eax, ecx
jle 0x40d5b6
mov ebx, dword [edi + esi*4 + 4]
cmp eax, ebx
jge 0x40d5b6
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
fld dword [edx + eax*4]
fld dword [edx + ecx*4]
fxch st(1)
mov dword [ebp - 0x88c], edx
fucom st(1)
fnstsw ax
fstp st(1)
sahf
ja 0x40d5a6
fstp st(0)
mov eax, dword [ebp + 0x10]
inc esi
add eax, eax
cmp eax, esi
mov eax, dword [ebp + 0x10]
setg dl
cmp dword [ebp - 0x828], eax
setl al
movzx eax, al
test edx, eax
jne 0x40d5d4
mov dword [esp], edi
call fcn.0040dc30
mov eax, dword [ebp - 0x82c]
add esp, 0x8ac
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
mov dword [esp], 0x12
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
shl eax, 3
mov dword [esp + 4], eax
call fcn.0040dc20
mov ebx, dword [ebp - 0x82c]
mov ecx, dword [ebp - 0x888]
mov edx, dword [edi + esi*4 + 4]
mov dword [ecx + ebx], eax
add ecx, ebx
mov eax, dword [edi + esi*4 - 4]
mov dword [ebp - 0x860], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x858], eax
mov dword [ebp - 0x85c], edx
mov eax, dword [ecx + 8]
mov dword [esp], 0xb
shl eax, 3
mov dword [esp + 4], eax
call fcn.0040dc20
mov dword [ebp - 0x864], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov dword [esp], 0xc
shl eax, 3
mov dword [esp + 4], eax
call fcn.0040dc20
mov dword [ebp - 0x868], eax
mov eax, dword [ebx + 8]
mov dword [esp], 0xd
shl eax, 3
mov dword [esp + 4], eax
call fcn.0040dc20
mov dword [ebp - 0x86c], eax
xor eax, eax
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.0040e8a0
mov dword [ebp - 0x870], eax
mov eax, dword [ebp - 0x864]
mov ebx, dword [ebp - 0x868]
test eax, eax
sete dl
test ebx, ebx
sete al
or eax, edx
test al, 1
jne 0x40db45
mov ecx, dword [ebp - 0x86c]
mov edx, dword [ebp - 0x870]
test ecx, ecx
sete al
test edx, edx
sete dl
or eax, edx
test al, 1
jne 0x40db45
mov eax, dword [ebp + 8]
xor ebx, ebx
mov ecx, dword [eax + 8]
cmp ecx, 0
jle 0x40d840
mov edx, dword [ebp - 0x858]
sub dword [ebp - 0x85c], edx
mov eax, dword [ebp - 0x85c]
inc eax
mov dword [ebp - 0x874], eax
jmp 0x40d797
mov edx, dword [ebp - 0x86c]
mov dword [edx + ebx*8], 0
mov eax, dword [ebp - 0x86c]
mov dword [eax + ebx*8 + 4], 0
inc ebx
cmp ecx, ebx
jle 0x40d840
cmp dword [ebp - 0x874], ebx
jle 0x40d773
mov edx, dword [ebp - 0x858]
mov eax, dword [ebp + 8]
add edx, ebx
mov dword [ebp - 0x890], edx
mov edx, dword [eax]
mov eax, dword [ebp - 0x890]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x86c]
mov dword [eax + ebx*8], edx
jmp 0x40d780
mov ebx, dword [ebp - 0x82c]
mov dword [esp], ebx
jmp 0x40d42b
fstp st(1)
inc esi
cmp dword [ebp - 0x848], esi
jg 0x40d2fc
fstp st(0)
mov eax, edi
mov edx, dword [ebp - 0x844]
shr eax, 0x1f
lea eax, [edi + eax]
sar eax, 1
mov edi, dword [ebp - 0x884]
lea ebx, [edx + eax*4]
lea edx, [ecx*4]
cmp edx, 7
lea esi, [ebx + 4]
jbe 0x40d823
test edi, 4
je 0x40d823
mov eax, dword [ebx + 4]
lea esi, [ebx + 8]
sub edx, 4
mov dword [edi], eax
add edi, 4
cld
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x844]
mov dword [esp], ecx
call fcn.0040dc30
xor eax, eax
jmp 0x40d39b
mov edx, dword [ebp - 0x864]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x86c]
mov dword [esp + 4], ecx
mov ebx, dword [ebp - 0x870]
mov dword [esp], ebx
xor ebx, ebx
call fcn.0040eb00
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
cmp ecx, 0
jle 0x40d8ae
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
jmp 0x40d897
mov eax, dword [ebp - 0x86c]
mov dword [eax + ebx*8], 0
mov eax, dword [ebp - 0x86c]
mov dword [eax + ebx*8 + 4], 0
inc ebx
cmp ecx, ebx
jle 0x40d8ae
cmp edx, ebx
jle 0x40d877
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
fld dword [eax + ebx*4]
mov eax, dword [ebp - 0x86c]
fstp dword [eax + ebx*8]
jmp 0x40d884
mov edx, dword [ebp - 0x868]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x86c]
mov dword [esp + 4], ecx
mov ebx, dword [ebp - 0x870]
mov dword [esp], ebx
xor ebx, ebx
call fcn.0040eb00
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
mov eax, ecx
shr eax, 0x1f
lea eax, [ecx + eax]
sar eax, 1
cmp eax, 0
jle 0x40d980
fld qword [0x42bfd8]
mov dword [ebp - 0x894], eax
mov edx, dword [ebp - 0x868]
fldz
fld dword [edx]
fld dword [edx + 4]
fld st(1)
fld st(1)
fxch st(1)
fmul st(3)
fxch st(1)
fmul st(2)
faddp st(1)
fucom st(3)
fnstsw ax
sahf
jne 0x40d938
jp 0x40d938
fstp st(1)
fstp st(1)
fld st(2)
faddp st(1)
fstp dword [ebp - 0x81c]
fld dword [ebp - 0x81c]
fld dword [edx]
fld dword [edx + 4]
fxch st(1)
fxch st(2)
fxch st(2)
mov ecx, dword [ebp - 0x860]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x864]
fmul dword [ecx + ebx*8]
fxch st(1)
fmul dword [ecx + ebx*8 + 4]
faddp st(1)
fdiv st(1)
fstp dword [eax + ebx*8]
fld dword [edx]
fld dword [edx + 4]
fxch st(1)
add edx, 8
fmul dword [ecx + ebx*8 + 4]
fxch st(1)
fmul dword [ecx + ebx*8]
fsubp st(1)
fdivrp st(1)
fstp dword [eax + ebx*8 + 4]
inc ebx
cmp dword [ebp - 0x894], ebx
jg 0x40d8ff
fstp st(0)
fstp st(0)
mov ebx, dword [ebp - 0x870]
mov dword [esp], ebx
call fcn.0040dc30
mov eax, dword [ebp - 0x86c]
mov dword [esp], eax
call fcn.0040dc30
mov edx, dword [ebp - 0x868]
mov dword [esp], edx
call fcn.0040dc30
mov ecx, dword [ebp - 0x864]
mov dword [esp], ecx
call fcn.0040dc30
mov ebx, dword [ebp - 0x888]
mov eax, dword [ebp - 0x82c]
mov ebx, dword [ebx + eax]
test ebx, ebx
je 0x40dba5
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x888]
mov edx, dword [ebp - 0x82c]
mov eax, dword [ecx + 8]
mov dword [ebx + edx + 8], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp + 8]
mov dword [ebx + edx + 0xc], eax
fld dword [ecx + 0x1c]
fild dword [edi + esi*4 - 4]
fxch st(1)
fnstcw word [ebp - 0x81e]
movzx eax, word [ebp - 0x81e]
or ax, 0xc00
mov word [ebp - 0x820], ax
fldcw word [ebp - 0x820]
fist dword [ebp - 0x824]
fldcw word [ebp - 0x81e]
mov eax, dword [ebp - 0x824]
push eax
mov ebx, dword [ebp + 0xc]
fild dword [esp]
mov eax, dword [ebx + 4]
xor ebx, ebx
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
fsubp st(1)
mov dword [esp], eax
mov eax, dword [ebp - 0x888]
mov ecx, dword [ecx + 8]
fild dword [esp]
fxch st(1)
add esp, 4
mov edx, dword [ebp - 0x82c]
fadd dword [0x42bfd0]
fsubrp st(1)
fsubp st(1)
fadd dword [0x42bfe0]
fstp dword [eax + edx + 0x10]
mov eax, ecx
shr eax, 0x1f
lea eax, [ecx + eax]
sar eax, 1
cmp eax, 0
jle 0x40db33
mov dword [ebp - 0x88c], eax
fldz
fld dword [ebp + ebx*8 - 0x818]
fld dword [ebp + ebx*8 - 0x814]
fld st(1)
fld st(1)
fxch st(1)
fmul st(3)
fxch st(1)
fmul st(2)
faddp st(1)
fucom st(3)
fnstsw ax
sahf
jne 0x40dad7
jp 0x40dad7
fstp st(1)
fstp st(1)
fld qword [0x42bfd8]
faddp st(1)
fstp dword [ebp - 0x81c]
fld dword [ebp - 0x81c]
fld dword [ebp + ebx*8 - 0x818]
fld dword [ebp + ebx*8 - 0x814]
fxch st(1)
fxch st(2)
mov edx, dword [ebp - 0x888]
mov ecx, dword [ebp - 0x82c]
mov eax, dword [edx + ecx]
fld dword [eax + ebx*8]
fld dword [eax + ebx*8 + 4]
fld st(1)
fld st(1)
fxch st(1)
fmul st(6)
fxch st(1)
fmul st(5)
fxch st(2)
fmulp st(6)
fxch st(2)
fmulp st(4)
faddp st(1)
fxch st(3)
fsubrp st(2)
fdiv st(2), st(0)
fdivp st(1)
fxch st(1)
fst dword [eax + ebx*8]
fxch st(1)
fst dword [eax + ebx*8 + 4]
fxch st(1)
inc ebx
cmp dword [ebp - 0x88c], ebx
fstp dword [ebp - 0x880]
fstp dword [ebp - 0x87c]
jg 0x40da88
fstp st(0)
inc dword [ebp - 0x828]
add dword [ebp - 0x888], 0x14
jmp 0x40d5b6
mov eax, dword [ebp - 0x864]
test eax, eax
je 0x40db5d
mov eax, dword [ebp - 0x864]
mov dword [esp], eax
call fcn.0040dc30
mov eax, dword [ebp - 0x868]
test eax, eax
je 0x40db75
mov edx, dword [ebp - 0x868]
mov dword [esp], edx
call fcn.0040dc30
mov edi, dword [ebp - 0x86c]
test edi, edi
je 0x40db8d
mov ecx, dword [ebp - 0x86c]
mov dword [esp], ecx
call fcn.0040dc30
mov esi, dword [ebp - 0x870]
test esi, esi
je 0x40dba5
mov ebx, dword [ebp - 0x870]
mov dword [esp], ebx
call fcn.0040dc30
mov ecx, dword [ebp - 0x828]
test ecx, ecx
js 0x40dbd4
mov ebx, dword [ebp - 0x828]
mov esi, dword [ebp - 0x82c]
inc ebx
jmp 0x40dbc4
add esi, 0x14
dec ebx
je 0x40dbd4
mov eax, dword [esi]
test eax, eax
je 0x40dbbe
mov dword [esp], eax
call fcn.0040dc30
jmp 0x40dbbe
mov edx, dword [ebp - 0x82c]
mov dword [esp], edx
jmp 0x40d42b