Function at 0x466a70
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, 0xb60b60b7
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x168
sub eax, ecx
mov dword [esp + 0x2c], eax
push ebx
mov ebx, dword [ebp + 0xc]
fild dword [esp + 0x30]
push esi
push edi
mov edi, dword [ebp + 8]
fadd st(0), st(0)
mov esi, 0x64
fmul qword [0x48b5a8]
fdiv qword [0x48b5a0]
fst qword [esp + 0x38]
fild dword [ebp + 0x18]
fld qword [0x48b598]
fld st(0)
fdivrp st(2)
fxch st(1)
fstp qword [esp + 0x78]
fidiv dword [ebp + 0x1c]
fstp qword [esp + 0x48]
call fcn.00475630
fst qword [esp + 0x88]
cmp dword [ebp + 0x18], esi
je 0x466b06
fmul qword [esp + 0x78]
fstp qword [esp + 0x90]
fld qword [esp + 0x38]
call fcn.00475500
fld qword [esp + 0x78]
fmul st(1)
jmp 0x466b18
fstp qword [esp + 0x90]
fld qword [esp + 0x38]
call fcn.00475500
fld st(0)
fst qword [esp + 0x98]
cmp dword [ebp + 0x1c], esi
je 0x466b49
fld qword [esp + 0x48]
fmul st(2), st(0)
fxch st(2)
fchs
fst qword [esp + 0xa0]
fld qword [esp + 0x88]
fmulp st(3)
fxch st(2)
fst qword [esp + 0xa8]
jmp 0x466b68
fxch st(1)
fchs
fst qword [esp + 0xa0]
fld qword [esp + 0x88]
fst qword [esp + 0xa8]
fxch st(1)
fxch st(2)
fxch st(1)
fld qword [esp + 0x90]
mov esi, 0x270f
fld qword [0x48b570]
mov dword [esp + 0x20], esi
fmul st(1), st(0)
fxch st(1)
call fcn.00475180
fmul st(3), st(0)
fxch st(3)
mov dword [esp + 0x5c], eax
call fcn.00475180
fxch st(1)
fmul st(2)
mov dword [esp + 0x6c], eax
call fcn.00475180
fmulp st(1)
mov dword [esp + 0x64], eax
call fcn.00475180
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x264]
cdq
idiv dword [edi + 0x284]
mov ecx, dword [edi + 0x278]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], eax
cmp ecx, 1
jne 0x466bd5
cdq
sub eax, edx
sar eax, 1
imul eax, dword [ebp + 0x18]
mov dword [esp + 0x38], eax
mov edi, dword [edi + 0x268]
mov dword [esp + 0x44], edi
fild dword [esp + 0x38]
fdiv qword [0x48b598]
fld qword [0x48b540]
call fcn.00475270
imul edi, dword [ebp + 0x1c]
fstp qword [esp + 0x88]
mov dword [esp + 0x38], edi
fild dword [esp + 0x38]
fdiv qword [0x48b598]
fld qword [0x48b540]
call fcn.00475270
fadd qword [esp + 0x88]
call fcn.004750c0
fmul qword [0x48b590]
call fcn.00475180
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
add edx, eax
sub ecx, eax
sub edi, eax
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0x14]
add eax, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], eax
test ecx, ecx
jge 0x466c65
xor ecx, ecx
mov dword [esp + 0x30], ecx
test edi, edi
jge 0x466c6f
xor edi, edi
mov dword [esp + 0x14], edi
mov eax, dword [ebx + 0x264]
cdq
idiv dword [ebx + 0x284]
cmp dword [ebx + 0x278], 1
mov dword [esp + 0x54], eax
jne 0x466c8e
cdq
sub eax, edx
sar eax, 1
cmp dword [esp + 0x34], eax
jle 0x466caa
cmp dword [ebx + 0x278], 1
mov eax, dword [esp + 0x54]
jne 0x466ca6
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0x268]
cmp dword [esp + 0x1c], eax
jle 0x466cba
mov dword [esp + 0x1c], eax
movzx eax, word [ebx + 0x23a]
imul eax, dword [ebx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
mov edx, dword [ebx + 0x268]
sub edx, edi
sar eax, 2
dec edx
imul eax, edx
mov edx, dword [ebx + 0x25c]
lea edi, [edx + eax*4]
lea eax, [ecx + ecx*2]
add edi, eax
cmp dword [esp + 0x48], 1
mov eax, dword [esp + 0x2c]
jne 0x466d0a
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [esp + 0x14]
sub ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x30]
sub edx, dword [ebp + 0x10]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
cdq
fld qword [esp + 0x90]
sub eax, edx
sar eax, 1
fmul st(1)
mov dword [esp + 0x38], eax
fld st(2)
fmul qword [esp + 0x98]
faddp st(1)
fild dword [esp + 0x38]
faddp st(1)
fld qword [0x48b570]
fmul st(1), st(0)
fxch st(1)
call fcn.00475180
fxch st(1)
fmul qword [esp + 0xa0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
fxch st(2)
fmul qword [esp + 0xa8]
cdq
sub eax, edx
sar eax, 1
faddp st(2)
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
faddp st(2)
fmulp st(1)
call fcn.00475180
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x278], 1
mov ebx, eax
mov eax, dword [esp + 0x2c]
jne 0x466da3
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
shl eax, 0x10
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x44]
shl eax, 0x10
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x278]
cmp eax, 1
jne 0x466dd0
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
movzx eax, word [ecx + 0x23a]
imul eax, edx
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x278]
sar eax, 2
add eax, eax
add eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
cmp ecx, 1
jne 0x466e11
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x280]
imul edx, eax
mov dword [esp + 0x58], edx
cmp ecx, 1
jne 0x466e2d
lea eax, [edx + edx]
mov dword [esp + 0x58], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x27c]
mov ecx, dword [ecx + 0x25c]
shl eax, 8
add eax, 0x49b588
push str.start__n
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x278]
mov ecx, dword [ebp + 0x20]
cmp eax, 1
jne 0x467b2a
cmp ecx, 2
jne 0x46729e
push str.opalpha_add2_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x264]
cdq
idiv dword [ecx + 0x284]
cmp dword [ecx + 0x278], 1
jne 0x466e9e
cdq
sub eax, edx
sar eax, 1
cmp dword [ecx + 0x27c], 0xff
mov edx, dword [esp + 0x14]
lea eax, [eax + eax*2]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
jge 0x4670b1
cmp edx, eax
jge 0x4697f6
sub eax, edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
nop
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], ebx
jge 0x467081
sub edx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
test eax, eax
jl 0x467065
test ebx, ebx
jl 0x467065
cmp eax, dword [esp + 0x74]
jge 0x467065
cmp ebx, dword [esp + 0x68]
jge 0x467065
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x466f4a
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x467043
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add edx, eax
mov eax, dword [ecx + 0x268]
mov ecx, dword [esp + 0x58]
sar edx, 2
sar esi, 0x10
sub eax, esi
dec eax
imul edx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, eax
lea eax, [ecx + eax*2]
lea ecx, [eax + edx*4]
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + ecx]
shl eax, 8
mov dword [esp + 0x10], ecx
movzx ecx, byte [ecx]
mov edx, 0x4ab488
sub edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x27c]
movzx eax, byte [edx + eax]
shl eax, 8
add eax, 0x49b588
movzx edx, byte [ecx + eax]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + edi]
sub ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 1]
movzx edx, byte [ecx + eax]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + edi + 1]
sub ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
movzx ecx, byte [edx + 2]
movzx edx, byte [ecx + eax]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi + 2]
sub eax, edx
mov dword [esp + 0x1c], eax
xor eax, eax
cmp dword [esp + 0x18], eax
jge 0x46702c
mov dword [esp + 0x18], eax
cmp dword [esp + 0x28], eax
jge 0x467036
mov dword [esp + 0x28], eax
cmp dword [esp + 0x1c], eax
mov ecx, dword [ebp + 8]
jge 0x467043
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
movzx edx, byte [esp + 0x1c]
mov byte [eax + edi + 2], dl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x24], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x2c], 1
mov dword [esp + 0xc], eax
jne 0x466ef6
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x48]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x44], 1
mov dword [esp + 0xc], eax
jne 0x466ed0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp edx, eax
jge 0x4697f6
sub eax, edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
jmp 0x4670d0
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], ebx
jge 0x46726e
sub edx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
test eax, eax
jl 0x467252
test ebx, ebx
jl 0x467252
cmp eax, dword [esp + 0x74]
jge 0x467252
cmp ebx, dword [esp + 0x68]
jge 0x467252
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x46714a
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x467230
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add edx, eax
mov eax, dword [ecx + 0x268]
mov ecx, dword [esp + 0x58]
sar edx, 2
sar esi, 0x10
sub eax, esi
dec eax
imul edx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, eax
lea eax, [ecx + eax*2]
lea ecx, [eax + edx*4]
mov edx, dword [esp + 0x54]
movzx eax, byte [edx + ecx]
mov dword [esp + 0x10], ecx
movzx ecx, byte [ecx]
shl eax, 8
mov edx, eax
mov eax, 0x4ab488
sub eax, edx
movzx edx, byte [ecx + eax]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + edi]
sub ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 1]
movzx edx, byte [ecx + eax]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + edi + 1]
sub ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
movzx ecx, byte [edx + 2]
movzx edx, byte [ecx + eax]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi + 2]
sub eax, edx
mov dword [esp + 0x1c], eax
xor eax, eax
cmp dword [esp + 0x18], eax
jge 0x467219
mov dword [esp + 0x18], eax
cmp dword [esp + 0x28], eax
jge 0x467223
mov dword [esp + 0x28], eax
cmp dword [esp + 0x1c], eax
mov ecx, dword [ebp + 8]
jge 0x467230
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
movzx edx, byte [esp + 0x1c]
mov byte [eax + edi + 2], dl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x24], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x2c], 1
mov dword [esp + 0xc], eax
jne 0x4670f6
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x48]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x44], 1
mov dword [esp + 0xc], eax
jne 0x4670d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 1
jne 0x467b2a
test ecx, ecx
jne 0x46772e
push str.opalpha_add0_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x264]
cdq
idiv dword [ecx + 0x284]
cmp dword [ecx + 0x278], 1
jne 0x4672d8
cdq
sub eax, edx
sar eax, 1
cmp dword [ecx + 0x27c], 0xff
mov edx, dword [esp + 0x14]
lea eax, [eax + eax*2]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x1c]
jge 0x467523
cmp edx, eax
jge 0x4697f6
sub eax, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc]
lea esp, [esp]
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x78], ebx
jge 0x4674f3
sub edx, dword [esp + 0x30]
mov dword [esp + 0x44], edx
test eax, eax
jl 0x4674d7
test ebx, ebx
jl 0x4674d7
cmp eax, dword [esp + 0x74]
jge 0x4674d7
cmp ebx, dword [esp + 0x68]
jge 0x4674d7
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x46738a
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x4674b5
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add edx, eax
mov eax, dword [ecx + 0x268]
mov ecx, dword [esp + 0x58]
sar edx, 2
sar esi, 0x10
sub eax, esi
dec eax
imul edx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, eax
lea eax, [ecx + eax*2]
lea eax, [eax + edx*4]
mov ecx, dword [esp + 0x84]
movzx edx, byte [ecx + eax]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x10], eax
shl edx, 8
mov eax, 0x4ab488
sub eax, edx
mov edx, dword [ecx + 0x27c]
movzx eax, byte [eax + edx]
shl eax, 8
mov dword [esp + 0x14], eax
mov edx, 0x4ab488
sub edx, eax
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi]
mov dword [esp + 0x2c], edx
movzx edx, byte [eax + edx]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], edx
movzx edx, byte [eax]
mov eax, dword [esp + 0x14]
movzx edx, byte [edx + eax + 0x49b588]
mov eax, dword [esp + 0x38]
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
movzx eax, byte [edx + edi + 1]
mov edx, dword [esp + 0x2c]
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
movzx eax, byte [edx + 1]
mov edx, dword [esp + 0x14]
movzx eax, byte [eax + edx + 0x49b588]
mov edx, dword [esp + 0x38]
add edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], edx
movzx edx, byte [eax + edi + 2]
mov eax, dword [esp + 0x2c]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], edx
movzx edx, byte [eax + 2]
mov eax, dword [esp + 0x14]
movzx edx, byte [edx + eax + 0x49b588]
mov eax, dword [esp + 0x38]
add eax, edx
mov dword [esp + 0x1c], eax
movzx edx, byte [esp + 0x18]
mov eax, dword [esp + 0x24]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
movzx edx, byte [esp + 0x1c]
mov byte [eax + edi + 2], dl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x24], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x44], 1
mov dword [esp + 0xc], eax
jne 0x467336
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x54], 1
mov dword [esp + 0xc], eax
jne 0x467310
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp edx, eax
jge 0x4697f6
sub eax, edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
jmp 0x467540
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], ebx
jge 0x4676fe
sub edx, dword [esp + 0x30]
mov dword [esp + 0x2c], edx
test eax, eax
jl 0x4676e2
test ebx, ebx
jl 0x4676e2
cmp eax, dword [esp + 0x74]
jge 0x4676e2
cmp ebx, dword [esp + 0x68]
jge 0x4676e2
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x4675ba
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x4676c0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add edx, eax
mov eax, dword [ecx + 0x268]
mov ecx, dword [esp + 0x58]
sar edx, 2
sar esi, 0x10
sub eax, esi
dec eax
imul edx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, eax
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x84]
lea edx, [eax + edx*4]
movzx ecx, byte [ecx + edx]
mov eax, 0xff
sub eax, ecx
shl eax, 8
mov dword [esp + 0x14], eax
mov ecx, 0x4ab488
sub ecx, eax
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi]
movzx eax, byte [eax + ecx]
mov dword [esp + 0x10], edx
movzx edx, byte [edx]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
movzx edx, byte [edx + eax + 0x49b588]
mov eax, dword [esp + 0x78]
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
movzx eax, byte [edx + edi + 1]
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x78], edx
movzx edx, byte [eax + 1]
mov eax, dword [esp + 0x14]
movzx edx, byte [edx + eax + 0x49b588]
mov eax, dword [esp + 0x78]
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
movzx eax, byte [edx + edi + 2]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x10]
movzx edx, byte [ecx + 2]
mov ecx, dword [esp + 0x14]
movzx edx, byte [edx + ecx + 0x49b588]
mov ecx, dword [ebp + 8]
add eax, edx
mov dword [esp + 0x1c], eax
movzx edx, byte [esp + 0x18]
mov eax, dword [esp + 0x24]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
movzx edx, byte [esp + 0x1c]
mov byte [eax + edi + 2], dl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x24], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x2c], 1
mov dword [esp + 0xc], eax
jne 0x467566
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x48]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x44], 1
mov dword [esp + 0xc], eax
jne 0x467540
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 1
jne 0x467b2a
cmp ecx, eax
jne 0x467b2a
push str.opalpha_add1_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x264]
cdq
idiv dword [ecx + 0x284]
cmp dword [ecx + 0x278], 1
jne 0x467768
cdq
sub eax, edx
sar eax, 1
cmp dword [ecx + 0x27c], 0xff
mov ecx, dword [esp + 0x14]
lea eax, [eax + eax*2]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x1c]
jge 0x467960
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x38], ebx
jge 0x467930
sub edx, dword [esp + 0x30]
mov dword [esp + 0x44], edx
test eax, eax
jl 0x467914
test ebx, ebx
jl 0x467914
cmp eax, dword [esp + 0x74]
jge 0x467914
cmp ebx, dword [esp + 0x68]
jge 0x467914
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x46781a
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x4678f7
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov ecx, dword [esp + 0x20]
mov edx, eax
add edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
add eax, ecx
lea eax, [eax + eax*2]
add eax, edx
mov edx, dword [esp + 0x84]
movzx ecx, byte [edx + eax]
shl ecx, 8
mov edx, 0x4ab488
sub edx, ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x27c]
movzx ecx, byte [edx + ecx]
movzx edx, byte [eax]
shl ecx, 8
add ecx, 0x49b588
mov dword [esp + 0x2c], ecx
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi]
add ecx, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
movzx ecx, byte [eax + 1]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 1]
movzx eax, byte [eax + 2]
add edx, ecx
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [eax + ecx]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edi + 2]
add ecx, eax
cmp dword [esp + 0x18], 0xff
mov dword [esp + 0x28], edx
jle 0x4678da
mov dword [esp + 0x18], 0xff
cmp edx, 0xff
jle 0x4678ea
mov dword [esp + 0x28], 0xff
cmp ecx, 0xff
jle 0x4678f7
mov ecx, 0xff
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x44], 1
mov dword [esp + 0xc], eax
jne 0x4677c6
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x38]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x54], 1
mov dword [esp + 0xc], eax
jne 0x4677a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc]
jmp 0x467980
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x38], ebx
jge 0x467afa
sub edx, dword [esp + 0x30]
mov dword [esp + 0x44], edx
test eax, eax
jl 0x467ade
test ebx, ebx
jl 0x467ade
cmp eax, dword [esp + 0x74]
jge 0x467ade
cmp ebx, dword [esp + 0x68]
jge 0x467ade
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x4679fa
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x467ac1
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
add ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add eax, edx
lea eax, [eax + eax*2]
add eax, ecx
mov ecx, dword [esp + 0x84]
movzx edx, byte [ecx + eax]
shl edx, 8
mov ecx, 0x4ab488
sub ecx, edx
movzx edx, byte [eax]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi]
add ecx, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
movzx ecx, byte [eax + 1]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 1]
movzx eax, byte [eax + 2]
add edx, ecx
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [eax + ecx]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edi + 2]
add ecx, eax
cmp dword [esp + 0x18], 0xff
mov dword [esp + 0x28], edx
jle 0x467aa4
mov dword [esp + 0x18], 0xff
cmp edx, 0xff
jle 0x467ab4
mov dword [esp + 0x28], 0xff
cmp ecx, 0xff
jle 0x467ac1
mov ecx, 0xff
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x44], 1
mov dword [esp + 0xc], eax
jne 0x4679a6
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x38]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x54], 1
mov dword [esp + 0xc], eax
jne 0x467980
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
test eax, eax
jne 0x467c0b
push str.opLEFTUP_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0x268]
sar eax, 2
dec edx
imul eax, edx
add eax, eax
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0x264]
cdq
idiv dword [ecx + 0x284]
cmp dword [ecx + 0x270], 0
jne 0x467bb0
cmp dword [ecx + 0x278], 1
jne 0x467b9c
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ecx + 0x280]
imul edx, eax
mov eax, dword [esp + 0x2c]
add eax, edx
lea eax, [eax + edx*2]
jmp 0x467bd0
cmp dword [ecx + 0x278], 1
jne 0x467bbe
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [ecx + 0x280]
imul ecx, eax
mov eax, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x270], 0
mov ecx, dword [esp + 0x50]
jne 0x467bff
movzx edx, byte [eax + ecx + 2]
mov dword [esp + 0x2c], edx
movzx edx, byte [eax + ecx + 1]
movzx eax, byte [eax + ecx]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x54], eax
jmp 0x467d22
movzx edx, byte [eax + ecx]
mov ecx, dword [ebp + 8]
jmp 0x467d1b
cmp eax, 4
jne 0x467cde
push str.opRIGHTUP_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0x268]
sar eax, 2
dec edx
imul eax, edx
add eax, eax
add eax, eax
cmp dword [ecx + 0x270], 0
mov dword [esp + 0x2c], eax
jne 0x467c82
call fcn.00401ff0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x280]
mov ecx, dword [esp + 0x2c]
inc edx
imul eax, edx
lea edx, [eax + ecx]
lea eax, [edx + eax*2 - 1]
jmp 0x467c9c
call fcn.00401ff0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x280]
mov ecx, dword [esp + 0x2c]
inc edx
imul eax, edx
lea eax, [ecx + eax - 1]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x270]
test edx, edx
mov edx, dword [esp + 0x50]
jne 0x467cd1
movzx edx, byte [eax + edx + 2]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x50]
movzx edx, byte [eax + edx + 1]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x50]
movzx eax, byte [eax + edx]
mov dword [esp + 0x54], eax
jmp 0x467d22
movzx eax, byte [eax + edx]
mov dword [esp + 0x84], eax
jmp 0x467d22
cmp eax, 2
jne 0x4688b9
push str.opSELECT_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x208]
mov edx, dword [eax + 0x20c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x210]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 0x214]
mov dword [esp + 0x54], ecx
mov ecx, eax
mov dword [esp + 0x84], edx
cmp dword [ecx + 0x270], 0
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], 0
je 0x4682d0
test eax, eax
jne 0x467f06
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
cmp edx, eax
jge 0x4697f6
sub eax, edx
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x38], ebx
jge 0x467ed5
mov eax, dword [esp + 0x34]
sub eax, edx
mov dword [esp + 0x54], eax
cmp dword [esp + 0xc], 0
jl 0x467eb9
test ebx, ebx
jl 0x467eb9
mov eax, dword [esp + 0x74]
cmp dword [esp + 0xc], eax
jge 0x467eb9
cmp ebx, dword [esp + 0x68]
jge 0x467eb9
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x467ddf
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x467e94
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0x268]
sar esi, 0x10
sar eax, 2
sub edx, esi
dec edx
imul eax, edx
mov edx, dword [esp + 0x50]
lea eax, [edx + eax*4]
add eax, dword [esp + 0x58]
add eax, dword [esp + 0x20]
movzx eax, byte [eax]
cmp eax, dword [esp + 0x84]
jne 0x467e4e
mov dword [esp + 0x10], 1
jmp 0x467eb9
mov edx, dword [ecx + 0x258]
lea eax, [edx + eax*4]
movzx edx, byte [eax]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
movzx edx, byte [edx + eax]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x44]
movzx edx, byte [edx + 1]
movzx edx, byte [edx + eax]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x44]
movzx edx, byte [edx + 2]
movzx eax, byte [edx + eax]
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], eax
jmp 0x467e9b
cmp dword [esp + 0x10], 0
jne 0x467eb9
movzx edx, byte [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
movzx edx, byte [esp + 0x1c]
mov byte [eax + edi + 2], dl
mov eax, dword [esp + 0x5c]
add dword [esp + 0x2c], 3
add dword [esp + 0xc], eax
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x54], 1
jne 0x467d84
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add edx, eax
sub dword [esp + 0x48], 1
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x38]
lea ebx, [edx + eax]
jne 0x467d58
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esp + 0x14]
cmp eax, 1
mov eax, dword [esp + 0x1c]
jne 0x4680fb
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x78], ecx
mov dword [esp + 0x38], ebx
jge 0x4680ca
mov eax, edx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp dword [esp + 0xc], 0
jl 0x4680ae
test ebx, ebx
jl 0x4680ae
mov eax, dword [esp + 0x74]
cmp dword [esp + 0xc], eax
jge 0x4680ae
cmp ebx, dword [esp + 0x68]
jge 0x4680ae
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
mov ecx, eax
sar ecx, 0x10
cmp dword [esp + 0x20], ecx
jne 0x467faa
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x46808a
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
add eax, dword [esp + 0x50]
add eax, dword [esp + 0x58]
add eax, dword [esp + 0x20]
movzx eax, byte [eax]
cmp eax, dword [esp + 0x84]
jne 0x467ff2
mov dword [esp + 0x10], 1
jmp 0x4680ae
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x258]
movzx ecx, byte [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi]
add ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
movzx ecx, byte [eax + 1]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 1]
movzx eax, byte [eax + 2]
add ecx, edx
mov edx, dword [esp + 0x24]
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 2]
add eax, edx
cmp dword [esp + 0x18], 0xff
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
jle 0x468068
mov dword [esp + 0x18], 0xff
cmp ecx, 0xff
jle 0x468078
mov dword [esp + 0x28], 0xff
cmp eax, 0xff
jle 0x468095
mov eax, 0xff
mov dword [esp + 0x1c], eax
jmp 0x468095
cmp dword [esp + 0x10], 0
jne 0x4680ae
mov eax, dword [esp + 0x1c]
movzx edx, byte [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [ecx + edi + 1], dl
mov byte [ecx + edi + 2], al
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], 3
add dword [esp + 0xc], eax
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x48], 1
jne 0x467f51
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
sub edi, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
add ecx, edx
sub dword [esp + 0x2c], 1
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
lea ebx, [eax + ecx]
jne 0x467f25
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x30], eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x78], edx
mov dword [esp + 0x38], ebx
jge 0x46829f
sub eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp dword [esp + 0xc], 0
jl 0x468283
test ebx, ebx
jl 0x468283
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0xc], ecx
jge 0x468283
cmp ebx, dword [esp + 0x68]
jge 0x468283
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
mov ecx, eax
sar ecx, 0x10
cmp dword [esp + 0x20], ecx
jne 0x46818c
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x46825f
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
add eax, dword [esp + 0x50]
add eax, dword [esp + 0x58]
add eax, dword [esp + 0x20]
movzx eax, byte [eax]
cmp eax, dword [esp + 0x84]
jne 0x4681d4
mov dword [esp + 0x10], 1
jmp 0x468283
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x258]
movzx edx, byte [ecx + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x24]
movzx edx, byte [edx + ecx]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + edi]
sub ecx, edx
movzx edx, byte [eax + 1]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
movzx edx, byte [edx + ecx]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + edi + 1]
sub ecx, edx
movzx edx, byte [eax + 2]
mov eax, dword [esp + 0x24]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edi + 2]
sub eax, edx
cmp dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
jge 0x468247
mov dword [esp + 0x18], 0
test ecx, ecx
jge 0x468253
mov dword [esp + 0x28], 0
test eax, eax
jge 0x46826a
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x46826a
cmp dword [esp + 0x10], 0
jne 0x468283
mov eax, dword [esp + 0x1c]
movzx edx, byte [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [ecx + edi + 1], dl
mov byte [ecx + edi + 2], al
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], 3
add dword [esp + 0xc], eax
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x48], 1
jne 0x468133
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
sub edi, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
add ecx, edx
sub dword [esp + 0x2c], 1
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
lea ebx, [eax + ecx]
jne 0x468109
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
test eax, eax
jne 0x4684b2
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
cmp edx, eax
jge 0x4697f6
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x34]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x84], 0
mov dword [esp + 0x78], edx
mov dword [esp + 0x88], ebx
jge 0x46847e
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp dword [esp + 0xc], 0
jl 0x46845f
test ebx, ebx
jl 0x46845f
mov edx, dword [esp + 0xc]
cmp edx, dword [esp + 0x74]
jge 0x46845f
cmp ebx, dword [esp + 0x68]
jge 0x46845f
mov eax, edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x46837b
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x468437
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
movzx eax, word [ecx + 0x23a]
imul eax, dword [ecx + 0x264]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 3
cdq
and edx, 3
add edx, eax
mov eax, dword [ecx + 0x268]
mov ecx, dword [esp + 0x58]
sar esi, 0x10
sub eax, esi
dec eax
sar edx, 2
imul edx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [esp + 0x50]
add ecx, eax
lea eax, [ecx + eax*2]
movzx ecx, byte [eax + edx*4]
lea edx, [eax + edx*4]
cmp ecx, dword [esp + 0x54]
jne 0x468406
movzx eax, byte [edx + 1]
cmp eax, dword [esp + 0x44]
jne 0x468406
movzx eax, byte [edx + 2]
cmp eax, dword [esp + 0x2c]
jne 0x468406
mov ecx, dword [ebp + 8]
mov dword [esp + 0x10], 1
jmp 0x46845f
mov eax, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 1]
movzx edx, byte [edx + 2]
movzx ecx, byte [ecx + eax]
movzx eax, byte [edx + eax]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], eax
jmp 0x46843e
cmp dword [esp + 0x10], 0
jne 0x46845f
movzx edx, byte [esp + 0x18]
mov eax, dword [esp + 0x84]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
movzx edx, byte [esp + 0x1c]
mov byte [eax + edi + 2], dl
mov eax, dword [esp + 0x5c]
add dword [esp + 0x84], 3
add dword [esp + 0xc], eax
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x48], 1
jne 0x468322
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
sub dword [esp + 0x38], 1
mov edx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x88]
lea ebx, [eax + edx]
jne 0x4682ee
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esp + 0x14]
cmp eax, 1
mov eax, dword [esp + 0x1c]
jne 0x4686c5
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x78], ecx
mov dword [esp + 0x84], ebx
jge 0x468691
mov eax, edx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
cmp dword [esp + 0xc], 0
jl 0x468675
test ebx, ebx
jl 0x468675
mov eax, dword [esp + 0x74]
cmp dword [esp + 0xc], eax
jge 0x468675
cmp ebx, dword [esp + 0x68]
jge 0x468675
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
mov ecx, eax
sar ecx, 0x10
cmp dword [esp + 0x20], ecx
jne 0x468559
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x468651
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
mov eax, dword [esp + 0x20]
add ecx, dword [esp + 0x50]
add eax, edx
lea eax, [eax + eax*2]
add eax, ecx
movzx ecx, byte [eax]
cmp ecx, dword [esp + 0x54]
jne 0x4685bb
movzx edx, byte [eax + 1]
cmp edx, dword [esp + 0x44]
jne 0x4685bb
movzx edx, byte [eax + 2]
cmp edx, dword [esp + 0x2c]
jne 0x4685bb
mov dword [esp + 0x10], 1
jmp 0x468675
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x88]
add edx, ecx
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 1]
add ecx, edx
mov edx, dword [esp + 0x24]
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi + 2]
add eax, edx
cmp dword [esp + 0x18], 0xff
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
jle 0x46862f
mov dword [esp + 0x18], 0xff
cmp ecx, 0xff
jle 0x46863f
mov dword [esp + 0x28], 0xff
cmp eax, 0xff
jle 0x46865c
mov eax, 0xff
mov dword [esp + 0x1c], eax
jmp 0x46865c
cmp dword [esp + 0x10], 0
jne 0x468675
mov eax, dword [esp + 0x1c]
movzx edx, byte [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [ecx + edi + 1], dl
mov byte [ecx + edi + 2], al
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], 3
add dword [esp + 0xc], eax
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
jne 0x468500
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
sub edi, dword [esp + 0x60]
mov eax, dword [esp + 0x84]
add ecx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
lea ebx, [eax + ecx]
jne 0x4684d1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x30], eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x78], edx
mov dword [esp + 0x84], ebx
jge 0x468885
sub eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
cmp dword [esp + 0xc], 0
jl 0x468869
test ebx, ebx
jl 0x468869
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0xc], ecx
jge 0x468869
cmp ebx, dword [esp + 0x68]
jge 0x468869
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
mov ecx, eax
sar ecx, 0x10
cmp dword [esp + 0x20], ecx
jne 0x468759
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x468845
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov ecx, dword [esp + 0x20]
mov edx, eax
mov eax, dword [esp + 0x58]
add edx, dword [esp + 0x50]
add eax, ecx
lea eax, [eax + eax*2]
movzx ecx, byte [eax + edx]
add eax, edx
cmp ecx, dword [esp + 0x54]
jne 0x4687bc
movzx edx, byte [eax + 1]
cmp edx, dword [esp + 0x44]
jne 0x4687bc
movzx edx, byte [eax + 2]
cmp edx, dword [esp + 0x2c]
jne 0x4687bc
mov dword [esp + 0x10], 1
jmp 0x468869
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x88]
sub edx, ecx
movzx ecx, byte [eax + 1]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [ecx + edi + 1]
sub ecx, edx
movzx edx, byte [eax + 2]
mov eax, dword [esp + 0x24]
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edi + 2]
sub eax, edx
cmp dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
jge 0x46882d
mov dword [esp + 0x18], 0
test ecx, ecx
jge 0x468839
mov dword [esp + 0x28], 0
test eax, eax
jge 0x468850
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x468850
cmp dword [esp + 0x10], 0
jne 0x468869
mov eax, dword [esp + 0x1c]
movzx edx, byte [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [ecx + edi + 1], dl
mov byte [ecx + edi + 2], al
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], 3
add dword [esp + 0xc], eax
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
jne 0x468700
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x64]
sub edi, dword [esp + 0x60]
mov eax, dword [esp + 0x84]
add ecx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x70]
lea ebx, [eax + ecx]
jne 0x4686d3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 3
jne 0x4697f6
push str.opCOPY_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [ebp + 0x20], 2
jne 0x468df6
mov eax, dword [ebp + 8]
cmp dword [eax + 0x270], 0
mov ecx, dword [esp + 0x14]
je 0x468aa3
mov eax, dword [esp + 0x1c]
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
jmp 0x468910
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x468a70
sub edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
test eax, eax
jl 0x468a54
test ebx, ebx
jl 0x468a54
cmp eax, dword [esp + 0x74]
jge 0x468a54
cmp ebx, dword [esp + 0x68]
jge 0x468a54
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x46898d
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x468a37
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
add eax, dword [esp + 0x50]
add eax, dword [esp + 0x58]
add eax, dword [esp + 0x20]
movzx edx, byte [eax]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x258]
lea eax, [ecx + edx*4]
movzx edx, byte [eax]
mov ecx, dword [esp + 0x24]
movzx edx, byte [edx + ecx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi]
sub ecx, edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi + 1]
sub edx, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 2]
sub ecx, eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x28], edx
jge 0x468a25
mov dword [esp + 0x18], 0
test edx, edx
jge 0x468a31
mov dword [esp + 0x28], 0
test ecx, ecx
jge 0x468a37
xor ecx, ecx
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x468939
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], eax
jne 0x468910
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp dword [eax + 0x27c], 0xff
mov eax, dword [esp + 0x1c]
jge 0x468c5d
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
lea ecx, [ecx]
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x468c2a
sub edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
test eax, eax
jl 0x468c0e
test ebx, ebx
jl 0x468c0e
cmp eax, dword [esp + 0x74]
jge 0x468c0e
cmp ebx, dword [esp + 0x68]
jge 0x468c0e
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x468b4d
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x468bf1
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
add ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*2]
add eax, ecx
movzx ecx, byte [eax]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi]
sub ecx, edx
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
movzx ecx, byte [edx + ecx]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi + 1]
sub edx, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 2]
sub ecx, eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x28], edx
jge 0x468bdf
mov dword [esp + 0x18], 0
test edx, edx
jge 0x468beb
mov dword [esp + 0x28], 0
test ecx, ecx
jge 0x468bf1
xor ecx, ecx
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x468af9
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], eax
jne 0x468ad0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
jmp 0x468c80
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x468dc3
sub edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
test eax, eax
jl 0x468da7
test ebx, ebx
jl 0x468da7
cmp eax, dword [esp + 0x74]
jge 0x468da7
cmp ebx, dword [esp + 0x68]
jge 0x468da7
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x468cfd
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x468d8a
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
add ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add eax, edx
lea eax, [eax + eax*2]
movzx edx, byte [eax + ecx]
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi]
sub ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
movzx edx, byte [ecx + edi + 1]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
sub edx, ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 2]
sub ecx, eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x28], edx
jge 0x468d78
mov dword [esp + 0x18], 0
test edx, edx
jge 0x468d84
mov dword [esp + 0x28], 0
test ecx, ecx
jge 0x468d8a
xor ecx, ecx
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x468ca9
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], eax
jne 0x468c80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov eax, dword [ebp + 0x20]
cmp eax, 1
jne 0x469344
mov eax, dword [ebp + 8]
cmp dword [eax + 0x270], 0
mov ecx, dword [esp + 0x14]
je 0x468fd2
mov eax, dword [esp + 0x1c]
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x468f9f
sub edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
test eax, eax
jl 0x468f83
test ebx, ebx
jl 0x468f83
cmp eax, dword [esp + 0x74]
jge 0x468f83
cmp ebx, dword [esp + 0x68]
jge 0x468f83
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x468ead
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x468f66
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
add eax, dword [esp + 0x50]
mov ecx, dword [ebp + 8]
add eax, dword [esp + 0x58]
mov edx, dword [ecx + 0x258]
add eax, dword [esp + 0x20]
movzx eax, byte [eax]
movzx ecx, byte [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi]
add ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
movzx ecx, byte [eax + 1]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 1]
movzx eax, byte [eax + 2]
add edx, ecx
mov ecx, dword [esp + 0x24]
movzx ecx, byte [eax + ecx]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edi + 2]
add ecx, eax
cmp dword [esp + 0x18], 0xff
mov dword [esp + 0x28], edx
jle 0x468f49
mov dword [esp + 0x18], 0xff
cmp edx, 0xff
jle 0x468f59
mov dword [esp + 0x28], 0xff
cmp ecx, 0xff
jle 0x468f66
mov ecx, 0xff
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x468e59
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], eax
jne 0x468e30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp dword [eax + 0x27c], 0xff
mov eax, dword [esp + 0x1c]
jge 0x46919b
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
lea esp, [esp]
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x469168
sub edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
test eax, eax
jl 0x46914c
test ebx, ebx
jl 0x46914c
cmp eax, dword [esp + 0x74]
jge 0x46914c
cmp ebx, dword [esp + 0x68]
jge 0x46914c
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x469079
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x46912f
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
add ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add eax, edx
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*2]
add eax, ecx
movzx ecx, byte [eax]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x10]
movzx edx, byte [edx + edi]
add ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
movzx ecx, byte [eax + 1]
movzx edx, byte [ecx + edx]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 1]
movzx eax, byte [eax + 2]
add edx, ecx
mov ecx, dword [esp + 0x24]
movzx ecx, byte [eax + ecx]
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + edi + 2]
add ecx, eax
cmp dword [esp + 0x18], 0xff
mov dword [esp + 0x28], edx
jle 0x469112
mov dword [esp + 0x18], 0xff
cmp edx, 0xff
jle 0x469122
mov dword [esp + 0x28], 0xff
cmp ecx, 0xff
jle 0x46912f
mov ecx, 0xff
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x469029
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], eax
jne 0x469000
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
jmp 0x4691c0
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x469311
sub edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
test eax, eax
jl 0x4692f5
test ebx, ebx
jl 0x4692f5
cmp eax, dword [esp + 0x74]
jge 0x4692f5
cmp ebx, dword [esp + 0x68]
jge 0x4692f5
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x46923d
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x4692d8
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
add ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add eax, edx
lea eax, [eax + eax*2]
movzx edx, byte [eax + ecx]
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi]
add ecx, edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
movzx edx, byte [ecx + edi + 1]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
add edx, ecx
mov ecx, dword [esp + 0x10]
movzx ecx, byte [ecx + edi + 2]
add ecx, eax
cmp dword [esp + 0x18], 0xff
mov dword [esp + 0x28], edx
jle 0x4692bb
mov dword [esp + 0x18], 0xff
cmp edx, 0xff
jle 0x4692cb
mov dword [esp + 0x28], 0xff
cmp ecx, 0xff
jle 0x4692d8
mov ecx, 0xff
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + 0x18]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x4691e9
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x78]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], eax
jne 0x4691c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
test eax, eax
jne 0x4697f6
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x27c]
mov edx, ecx
shl edx, 8
mov eax, 0x4ab488
sub eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x270], 0
mov eax, dword [esp + 0x1c]
je 0x4694dc
mov ecx, dword [esp + 0x14]
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp edx, ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x4694a8
sub ecx, edx
mov dword [esp + 0x38], ecx
test eax, eax
jl 0x46948c
test ebx, ebx
jl 0x46948c
cmp eax, dword [esp + 0x74]
jge 0x46948c
cmp ebx, dword [esp + 0x68]
jge 0x46948c
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
mov ecx, eax
sar ecx, 0x10
cmp dword [esp + 0x20], ecx
jne 0x469406
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x46946b
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
add eax, dword [esp + 0x50]
mov edx, dword [ebp + 8]
add eax, dword [esp + 0x58]
add eax, dword [esp + 0x20]
movzx ecx, byte [eax]
mov eax, dword [edx + 0x258]
lea edx, [eax + ecx*4]
movzx ecx, byte [edx]
mov eax, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 1]
movzx edx, byte [edx + 2]
movzx ecx, byte [ecx + eax]
movzx eax, byte [edx + eax]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
movzx ecx, byte [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x28]
mov byte [eax + edi], cl
movzx ecx, byte [esp + 0x1c]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x2c], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x4693b8
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x88]
sub edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
add eax, edx
sub dword [esp + 0x48], 1
mov edx, dword [esp + 0x78]
mov dword [esp + 0xc], eax
lea ebx, [edx + ecx]
jne 0x46938f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp ecx, 0xff
mov ecx, dword [esp + 0x14]
jge 0x4696ae
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
jmp 0x469510
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x30], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], ebx
jge 0x46967e
sub edx, dword [esp + 0x30]
mov dword [esp + 0x38], edx
test eax, eax
jl 0x469662
test ebx, ebx
jl 0x469662
cmp eax, dword [esp + 0x74]
jge 0x469662
cmp ebx, dword [esp + 0x68]
jge 0x469662
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], eax
jne 0x46958a
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x469645
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
add ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x20]
add eax, edx
lea eax, [eax + eax*2]
add eax, ecx
mov ecx, dword [esp + 0x10]
movzx edx, byte [ecx + edi]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
movzx ecx, byte [eax]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x88]
add edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
movzx edx, byte [ecx + edi + 1]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
movzx ecx, byte [eax + 1]
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x24]
movzx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x88]
add edx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], edx
movzx edx, byte [ecx + edi + 2]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [edx + ecx]
movzx edx, byte [eax + 2]
mov eax, dword [esp + 0x24]
movzx edx, byte [edx + eax]
add ecx, edx
movzx edx, byte [esp + 0x18]
mov eax, dword [esp + 0x10]
mov byte [eax + edi], dl
movzx edx, byte [esp + 0x28]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x10], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x469536
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x44]
sub edi, dword [esp + 0x60]
add eax, edx
mov edx, dword [esp + 0x70]
add ebx, edx
sub dword [esp + 0x48], 1
mov dword [esp + 0xc], eax
jne 0x469510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp ecx, eax
jge 0x4697f6
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
cmp edx, ecx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x78], ebx
jge 0x4697cb
sub ecx, edx
mov dword [esp + 0x38], ecx
lea esp, [esp]
test eax, eax
jl 0x4697af
test ebx, ebx
jl 0x4697af
cmp eax, dword [esp + 0x74]
jge 0x4697af
cmp ebx, dword [esp + 0x68]
jge 0x4697af
mov eax, dword [esp + 0xc]
cdq
and edx, 0xffff
add eax, edx
mov ecx, eax
sar ecx, 0x10
cmp dword [esp + 0x20], ecx
jne 0x46973e
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
cmp esi, eax
je 0x46978e
mov eax, ebx
cdq
and edx, 0xffff
add eax, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
mov esi, eax
sar esi, 0x10
push esi
add ecx, 0x21c
call fcn.00401f50
mov edx, dword [esp + 0x58]
mov ecx, eax
mov eax, dword [esp + 0x20]
add ecx, dword [esp + 0x50]
add eax, edx
lea eax, [eax + eax*2]
movzx edx, byte [eax + ecx + 1]
add eax, ecx
movzx ecx, byte [eax]
movzx eax, byte [eax + 2]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
movzx ecx, byte [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x28]
mov byte [eax + edi], cl
movzx ecx, byte [esp + 0x1c]
mov byte [eax + edi + 1], dl
mov byte [eax + edi + 2], cl
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x5c]
add dword [esp + 0x2c], 3
add ebx, dword [esp + 0x6c]
sub dword [esp + 0x38], 1
mov dword [esp + 0xc], eax
jne 0x4696f0
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x88]
sub edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x70]
add eax, edx
sub dword [esp + 0x48], 1
mov edx, dword [esp + 0x78]
mov dword [esp + 0xc], eax
lea ebx, [edx + ecx]
jne 0x4696c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c