Function at 0x10015090
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x750
mov eax, dword [0x50b8fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x6f4], 0
mov dword [ebp - 0x718], 0
mov dword [ebp - 0x74c], 0
push ebx
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x70c], ebx
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x750], esi
push edi
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x740], edi
cmp eax, 0x32
jbe 0x10015109
lea ebx, [ebx]
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa0f
call fcn.1000b367
add esp, 8
jmp 0x100150f0
lea eax, [eax + eax*4]
shl eax, 2
push eax
push ecx
lea eax, [ebp - 0x6d0]
push eax
call fcn.1000b39d
push 0xc0
lea eax, [ebp - 0x1ec]
push 0
push eax
call fcn.1000b461
mov eax, dword [ebp + 0xc]
xor ecx, ecx
add esp, 0x18
mov dword [ebp - 0x734], ecx
cmp dword [ebp + 0x20], ecx
jbe 0x10015382
jmp 0x10015150
lea edi, [ecx + ecx*4]
shl edi, 2
mov bl, byte [ebp + edi - 0x6c4]
mov bh, byte [ebp + edi - 0x6c0]
cmp bl, 0xd
ja 0x10015490
cmp bh, 0xd
ja 0x10015470
test bl, bl
je 0x10015189
movzx eax, bl
movzx ecx, bh
dec eax
cmp ecx, eax
jne 0x10015450
movzx edx, byte [ebp + edi - 0x6cc]
movzx eax, byte [ebp + edi - 0x6c8]
mov dword [ebp - 0x700], edx
mov dword [ebp - 0x708], eax
cmp edx, eax
ja 0x100151ae
cmp eax, 0x3f
jbe 0x100151d3
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
mov eax, dword [ebp - 0x708]
add esp, 8
mov edx, dword [ebp - 0x700]
jmp 0x100151a5
mov ecx, dword [ebp - 0x734]
test ecx, ecx
jne 0x1001520d
lea ecx, [ecx]
test edx, edx
jne 0x100151e8
test eax, eax
je 0x10015239
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
mov eax, dword [ebp - 0x708]
add esp, 8
mov edx, dword [ebp - 0x700]
jmp 0x100151e0
test edx, edx
jne 0x100152d1
test eax, eax
je 0x1001523f
lea esp, [esp]
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
add esp, 8
jmp 0x10015220
mov ecx, dword [ebp - 0x734]
cmp bl, byte [ebp - 0x1ec]
je 0x10015275
jmp 0x10015250
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
add esp, 8
cmp bl, byte [ebp - 0x1ec]
jne 0x10015250
mov ecx, dword [ebp - 0x734]
mov eax, dword [ebp + 0xc]
mov byte [ebp - 0x1ec], bh
cmp eax, 1
jne 0x10015293
mov dword [ebp + edi - 0x6d0], 0
jmp 0x10015366
cmp dword [ebp + edi - 0x6d0], 3
lea edi, [ebp + edi - 0x6d0]
je 0x10015366
jmp 0x100152b0
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
add esp, 8
cmp dword [edi], 3
jne 0x100152b0
jmp 0x1001535d
lea ecx, [ebp - 0x6d0]
add edi, ecx
mov ecx, dword [edi]
cmp ecx, 2
jbe 0x1001530a
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
mov ecx, dword [edi]
add esp, 8
cmp ecx, 2
ja 0x100152e0
mov eax, dword [ebp - 0x708]
mov edx, dword [ebp - 0x700]
shl ecx, 6
lea edi, [ebp - 0x1ec]
add ecx, edx
sub eax, edx
add edi, ecx
inc eax
mov dword [ebp - 0x708], eax
cmp bl, byte [edi]
je 0x10015351
jmp 0x10015330
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
add esp, 8
cmp bl, byte [edi]
jne 0x10015330
mov eax, dword [ebp - 0x708]
mov byte [edi], bh
inc edi
dec eax
mov dword [ebp - 0x708], eax
jne 0x10015320
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x734]
inc ecx
mov dword [ebp - 0x734], ecx
cmp ecx, dword [ebp + 0x20]
jb 0x10015150
mov ebx, dword [ebp - 0x70c]
mov edi, dword [ebp - 0x740]
cmp eax, 1
jne 0x100154a9
mov eax, dword [ebp + 0x20]
xor edi, edi
xor ebx, ebx
test eax, eax
je 0x100153ee
lea edx, [ebp - 0x6c0]
lea esp, [esp]
test edi, edi
je 0x100153df
mov eax, ebx
sub eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [edx - 0x10]
mov dword [ebp + ecx*4 - 0x6d0], eax
mov eax, dword [edx - 4]
mov dword [ebp + ecx*4 - 0x6c4], eax
mov eax, dword [edx]
mov dword [ebp + ecx*4 - 0x6c0], eax
mov eax, dword [edx - 8]
mov dword [ebp + ecx*4 - 0x6c8], eax
mov eax, dword [edx - 0xc]
mov dword [ebp + ecx*4 - 0x6cc], eax
mov eax, dword [ebp + 0x20]
cmp dword [edx - 0x10], 0
je 0x100153e6
inc edi
inc ebx
add edx, 0x14
cmp ebx, eax
jb 0x100153a0
mov ecx, dword [ebp + 0x10]
sub eax, edi
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x14]
add eax, 7
mov dword [ebp - 0x2e8], 0x40
lea ecx, [ecx + 7]
mov dword [ebp - 0x734], 1
shr ecx, 3
shr eax, 3
mov edi, ecx
mov edx, eax
mov dword [ebp - 0x738], ecx
mov dword [ebp - 0x744], eax
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x740], 0
jmp 0x1001567c
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
add esp, 8
jmp 0x10015450
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
add esp, 8
jmp 0x10015470
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffa04
call fcn.1000b367
add esp, 8
jmp 0x10015490
movzx eax, byte [ebx]
xor edx, edx
mov dword [ebp - 0x73c], eax
xor esi, esi
lea ecx, [eax*8]
mov eax, dword [ebp + 0x10]
dec eax
add eax, ecx
div ecx
movzx ecx, byte [edi]
xor edx, edx
mov ebx, eax
mov dword [ebp - 0x730], ecx
mov eax, dword [ebp + 0x14]
shl ecx, 3
dec eax
add eax, ecx
mov dword [ebp - 0x738], ebx
div ecx
xor edx, edx
lea ecx, [ebx - 1]
mov dword [ebp - 0x710], edx
mov edx, dword [ebp - 0x70c]
sub edi, edx
mov dword [ebp - 0x744], eax
mov dword [ebp - 0x6ec], ecx
mov dword [ebp - 0x740], edi
movzx edi, byte [edx]
xor ebx, ebx
mov eax, edi
mov dword [ebp - 0x748], edi
imul eax, ecx
inc eax
shl eax, 6
mov dword [ebp - 0x6f0], eax
mov eax, dword [ebp - 0x740]
movzx eax, byte [eax + edx]
mov dword [ebp - 0x708], eax
test eax, eax
je 0x1001557f
mov ecx, dword [ebp - 0x6f0]
lea edx, [edi - 1]
mov dword [ebp - 0x700], eax
test edx, edx
je 0x10015566
lea eax, [esi + ebx]
mov ecx, edx
lea edi, [ebp - 0x2e8]
add ebx, edx
lea edi, [edi + eax*4]
mov eax, 0x40
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x6f0]
lea eax, [esi + ebx]
inc ebx
dec dword [ebp - 0x700]
mov dword [ebp + eax*4 - 0x2e8], ecx
jne 0x10015545
mov edi, dword [ebp - 0x748]
mov edx, dword [ebp - 0x73c]
lea eax, [esi + ebx]
lea ecx, [ebp + eax*4 - 0x2ec]
dec edx
mov eax, dword [ebp - 0x708]
add esi, 0x10
imul eax, dword [ebp - 0x738]
dec eax
imul eax, edi
shl eax, 6
sub dword [ecx], eax
mov eax, edi
imul eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x710]
add eax, edx
mov dword [ebp + ecx - 0x1f8], ebx
xor edx, edx
sub ebx, edi
div dword [ebp - 0x73c]
mov edx, dword [ebp - 0x710]
add eax, 7
imul ebx, dword [ebp - 0x738]
shr eax, 3
mov dword [ebp + ecx - 0x21c], eax
mov ecx, edi
imul ecx, dword [ebp - 0x738]
shl ebx, 6
sub ecx, eax
mov eax, dword [ebp - 0x708]
imul eax, dword [ebp + 0x14]
shl ecx, 6
mov dword [ebp + edx - 0x228], ecx
xor edx, edx
mov ecx, dword [ebp - 0x710]
dec eax
add eax, dword [ebp - 0x730]
div dword [ebp - 0x730]
mov edx, dword [ebp - 0x70c]
add eax, 7
mov dword [ebp + ecx - 0x204], ebx
shr eax, 3
inc edx
mov dword [ebp + ecx - 0x210], eax
add ecx, 4
mov dword [ebp - 0x710], ecx
mov ecx, dword [ebp - 0x6ec]
mov dword [ebp - 0x70c], edx
cmp esi, 0x30
jb 0x10015508
mov eax, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x210]
mov esi, dword [ebp - 0x750]
mov dword [ebp - 0x734], eax
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x740], eax
mov ebx, dword [ebp + 0x20]
xor ecx, ecx
test ebx, ebx
je 0x100156f0
lea eax, [ebp - 0x6c4]
jmp 0x10015690
cmp dword [eax - 4], 0
je 0x1001569b
cmp dword [eax], 0
jne 0x100156a5
inc ecx
add eax, 0x14
cmp ecx, ebx
jb 0x10015690
jmp 0x100156f0
imul edx, edi
shl edx, 3
test edx, edx
je 0x100156f0
lea eax, [edx + 1]
push eax
call 0x10026ec0
add esp, 4
mov dword [0x50bd364], eax
test eax, eax
jne 0x100156f0
jmp 0x100156d0
push 2
push dword [esi + 0x498]
mov dword [esi + 0xc], 0xfffffc11
call fcn.1000b367
add esp, 8
cmp dword [0x50bd364], 0
je 0x100156d0
mov esi, dword [0x50bd368]
xor ecx, ecx
mov dword [ebp - 0x748], ecx
test ebx, ebx
je 0x100191e1
lea ecx, [ecx + ecx*4]
xor edi, edi
shl ecx, 2
xor ebx, ebx
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x724], ebx
mov eax, dword [ebp + ecx - 0x6c8]
mov dword [ebp - 0x6fc], eax
test eax, eax
jne 0x10016c0d
mov eax, dword [0x50bd348]
mov edx, dword [0x50bd340]
mov dword [ebp - 0x6e4], eax
mov eax, dword [0x50bd350]
mov dword [ebp - 0x6fc], eax
lea eax, [ebp - 0x6c0]
add eax, ecx
mov dword [ebp - 0x6d8], edx
mov dword [ebp - 0x728], eax
mov al, byte [eax]
mov byte [ebp - 0x6d1], al
lea eax, [ebp - 0x6c4]
add eax, ecx
mov dword [ebp - 0x708], eax
cmp byte [eax], bl
jne 0x1001679a
push 0x40
push ebx
push 0x50bd464
call fcn.1000b461
mov esi, dword [ebp + 0xc]
add esp, 0xc
cmp esi, 1
je 0x100157a7
push 0x40
push ebx
push 0x50be134
call fcn.1000b461
add esp, 0xc
mov ecx, dword [ebp - 0x744]
mov dword [ebp - 0x70c], ebx
mov dword [ebp - 0x700], ebx
mov dword [ebp - 0x6f0], ebx
test ecx, ecx
je 0x10015a03
mov edx, dword [ebp - 0x740]
mov edi, ebx
mov al, byte [ebp - 0x6d1]
mov esi, dword [ebp - 0x6d8]
mov ebx, dword [ebp - 0x738]
movzx eax, al
mov word [ebp - 0x6de], ax
lea eax, [edx + edx]
mov dword [ebp - 0x730], eax
mov edx, ecx
mov eax, dword [ebp - 0x200]
mov ecx, dword [ebp - 0x6fc]
add eax, eax
mov dword [ebp - 0x6ec], eax
mov eax, dword [ebp - 0x1fc]
add eax, eax
mov dword [ebp - 0x71c], edx
mov dword [ebp - 0x6f8], eax
mov eax, dword [ebp - 0x6e4]
test ebx, ebx
je 0x100159c3
mov eax, ebx
mov dword [ebp - 0x710], ebx
jmp 0x10015840
mov cx, word [ebp - 0x6de]
xor edx, edx
cmp dword [ebp - 0x734], edx
jbe 0x100158b4
mov edi, dword [ebp - 0x6f0]
mov ax, word [esi]
sar ax, cl
movzx ebx, ax
mov eax, ebx
mov dword [ebp - 0x718], ebx
sub eax, edi
movzx eax, ax
test ax, ax
jns 0x10015877
neg eax
movzx eax, ax
cwde
movzx edi, bx
movzx eax, byte [eax + 0x50b87a8]
inc dword [eax*4 + 0x50bd464]
mov eax, dword [ebp + edx*4 - 0x2e8]
inc edx
lea esi, [esi + eax*2]
cmp edx, dword [ebp - 0x734]
jb 0x10015857
mov eax, dword [ebp - 0x710]
mov dword [ebp - 0x6f0], edi
mov edi, dword [ebp - 0x70c]
mov dword [ebp - 0x6d8], esi
cmp dword [ebp + 0xc], 1
je 0x1001599e
xor edx, edx
cmp dword [ebp - 0x1f4], edx
jbe 0x10015931
mov esi, dword [ebp - 0x6e4]
mov edi, dword [ebp - 0x700]
mov ax, word [esi]
sar ax, cl
movzx ebx, ax
mov eax, ebx
mov dword [ebp - 0x718], ebx
sub eax, edi
movzx eax, ax
test ax, ax
jns 0x100158f4
neg eax
movzx eax, ax
cwde
movzx edi, bx
movzx eax, byte [eax + 0x50b87a8]
inc dword [eax*4 + 0x50be134]
mov eax, dword [ebp + edx*4 - 0x2a8]
inc edx
lea esi, [esi + eax*2]
cmp edx, dword [ebp - 0x1f4]
jb 0x100158d4
mov dword [ebp - 0x700], edi
mov edi, dword [ebp - 0x70c]
mov dword [ebp - 0x6e4], esi
mov esi, dword [ebp - 0x6d8]
xor edx, edx
cmp dword [ebp - 0x1f0], edx
jbe 0x10015998
mov esi, dword [ebp - 0x6fc]
mov ax, word [esi]
sar ax, cl
movzx ebx, ax
mov eax, ebx
mov dword [ebp - 0x718], ebx
sub eax, edi
movzx eax, ax
test ax, ax
jns 0x10015961
neg eax
movzx eax, ax
cwde
movzx edi, bx
movzx eax, byte [eax + 0x50b87a8]
inc dword [eax*4 + 0x50be134]
mov eax, dword [ebp + edx*4 - 0x268]
inc edx
lea esi, [esi + eax*2]
cmp edx, dword [ebp - 0x1f0]
jb 0x10015941
mov dword [ebp - 0x6fc], esi
mov esi, dword [ebp - 0x6d8]
mov dword [ebp - 0x70c], edi
mov eax, dword [ebp - 0x710]
dec eax
mov dword [ebp - 0x710], eax
jne 0x10015840
mov eax, dword [ebp - 0x6e4]
mov ecx, dword [ebp - 0x6fc]
mov edx, dword [ebp - 0x71c]
mov ebx, dword [ebp - 0x738]
add esi, dword [ebp - 0x730]
add eax, dword [ebp - 0x6ec]
add ecx, dword [ebp - 0x6f8]
dec edx
mov dword [ebp - 0x6d8], esi
mov dword [ebp - 0x6e4], eax
mov dword [ebp - 0x6fc], ecx
mov dword [ebp - 0x71c], edx
jne 0x10015824
mov ebx, dword [ebp - 0x724]
mov edi, dword [ebp - 0x720]
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x750]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x7c]
push eax
push 0xf
push 0xb
push 0x50bd464
call fcn.10014e10
push 0
push 0x50bd3e4
push 0x50bd424
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.100144f0
add esp, 0x2c
cmp esi, 1
je 0x10015a7a
lea eax, [ebp - 0x74c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x5c]
push eax
push 0xf
push 0xb
push 0x50be134
call fcn.10014e10
push 0
push 0x50be0b4
push 0x50be0f4
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.100144f0
add esp, 0x2c
mov eax, dword [ebp - 0x750]
add eax, 0x13
movzx edx, ax
mov dword [ebp - 0x6f0], edx
cmp esi, 1
je 0x10015aa2
mov eax, dword [ebp - 0x74c]
add eax, 0x11
add edx, eax
mov dword [ebp - 0x6f0], edx
mov ecx, dword [0x50bd368]
movzx esi, dx
lea eax, [ecx + 2]
add eax, esi
cmp eax, dword [0x50bd36c]
jbe 0x10015ad6
call fcn.1001ba20
mov ecx, dword [0x50bd368]
lea eax, [ecx + 2]
add eax, esi
cmp eax, dword [0x50bd36c]
ja 0x10015ab8
mov edx, dword [ebp - 0x6f0]
mov byte [ecx], 0xff
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
push 0x10
mov byte [eax], 0xc4
mov eax, edx
mov ecx, dword [0x50bd368]
shr eax, 8
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], al
lea ecx, [ebp - 0x7c]
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
push ecx
mov byte [eax], dl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov eax, dword [0x50bd368]
lea ecx, [ebp - 0x1c]
mov esi, dword [ebp - 0x750]
add eax, 0x10
push esi
push ecx
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov ecx, dword [0x50bd368]
add esp, 0x18
add ecx, esi
mov esi, dword [ebp + 0xc]
mov dword [0x50bd368], ecx
cmp esi, 1
je 0x10015bb0
mov byte [ecx], 1
lea ecx, [ebp - 0x5c]
mov eax, dword [0x50bd368]
push 0x10
inc eax
push ecx
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov eax, dword [0x50bd368]
lea ecx, [ebp - 0x10]
push dword [ebp - 0x74c]
add eax, 0x10
push ecx
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov ecx, dword [0x50bd368]
add esp, 0x18
add ecx, dword [ebp - 0x74c]
mov dword [0x50bd368], ecx
lea eax, [ecx + 0xe]
cmp eax, dword [0x50bd36c]
jbe 0x10015bd6
jmp 0x10015bc0
call fcn.1001ba20
mov ecx, dword [0x50bd368]
lea eax, [ecx + 0xe]
cmp eax, dword [0x50bd36c]
ja 0x10015bc0
mov byte [ecx], 0xff
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0xda
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
cmp esi, 1
jne 0x10015c34
mov byte [eax], 8
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
jmp 0x10015c99
mov byte [eax], 0xc
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 3
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 2
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0x11
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 3
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0x11
mov eax, dword [0x50bd368]
xor edx, edx
mov esi, dword [ebp - 0x728]
inc eax
mov dword [0x50bd368], eax
mov dword [ebp - 0x724], 0
mov dword [ebp - 0x71c], edx
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
mov dword [ebp - 0x6f0], edx
mov dword [0x50bd368], eax
mov dword [ebp - 0x710], edx
mov byte [eax], 0
mov eax, dword [ebp - 0x708]
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [eax]
shl al, 4
or al, byte [esi]
mov byte [ecx], al
mov esi, dword [0x50bd368]
mov eax, dword [0x50bd348]
inc esi
mov ecx, dword [0x50bd340]
mov dword [ebp - 0x708], eax
mov eax, dword [0x50bd350]
mov dword [0x50bd368], esi
mov dword [ebp - 0x6f8], ecx
mov dword [ebp - 0x728], eax
cmp dword [ebp - 0x744], edx
jbe 0x100191cb
mov al, byte [ebp - 0x6d1]
movzx eax, al
mov ecx, eax
mov dword [ebp - 0x700], 0x10
sub dword [ebp - 0x700], ecx
mov eax, 0x10
sub eax, ecx
mov dword [ebp - 0x70c], 0x10
sub dword [ebp - 0x70c], ecx
mov dword [ebp - 0x730], ecx
mov dword [ebp - 0x714], ecx
mov dword [ebp - 0x704], ecx
mov ecx, dword [ebp - 0x740]
mov dword [ebp - 0x6e8], eax
lea eax, [ecx + ecx]
mov ecx, dword [ebp - 0x6f8]
mov dword [ebp - 0x72c], eax
mov eax, dword [ebp - 0x200]
add eax, eax
mov dword [ebp - 0x6dc], eax
mov eax, dword [ebp - 0x708]
cmp dword [ebp - 0x738], 0
mov dword [ebp - 0x6fc], 0
jbe 0x1001674a
lea ebx, [ebx]
cmp dword [ebp - 0x734], 0
mov dword [ebp - 0x6e4], 0
jbe 0x100160dc
jmp 0x10015de0
mov ax, word [ecx]
mov cx, word [ebp - 0x730]
sar ax, cl
movzx eax, ax
mov dword [ebp - 0x718], eax
sub eax, dword [ebp - 0x6f0]
movzx eax, ax
test ax, ax
jns 0x10015f1d
movsx ecx, ax
mov eax, 0x50b87a8
sub eax, ecx
mov dword [ebp - 0x6d8], ecx
mov al, byte [eax]
movzx edx, al
mov dword [ebp - 0x6f0], edx
mov ecx, dword [edx*4 + 0x50bd3e4]
add edi, ecx
shl ebx, cl
add ebx, dword [edx*4 + 0x50bd424]
mov edx, ebx
mov dword [ebp - 0x6ec], edx
cmp edi, 0x10
jb 0x10015ebe
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x10015e70
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10015e54
mov edx, dword [ebp - 0x6ec]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10015e9a
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x10015ebe
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov ecx, dword [ebp - 0x6f0]
mov ebx, 1
mov eax, dword [ebp - 0x6d8]
add edi, ecx
shl ebx, cl
dec eax
dec ebx
shl edx, cl
and ebx, eax
add ebx, edx
cmp edi, 0x10
jb 0x10016081
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001603c
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10015f02
jmp 0x10016036
movsx edx, ax
mov dword [ebp - 0x6d8], edx
mov al, byte [edx + 0x50b87a8]
mov byte [ebp - 0x6dd], al
movzx eax, al
mov dword [ebp - 0x6f0], eax
mov ecx, dword [eax*4 + 0x50bd3e4]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd424]
cmp edi, 0x10
jb 0x10015fe6
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x10015f8c
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10015f70
mov edx, dword [ebp - 0x6ec]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10015fb6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x6f0]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
cmp dl, 0xff
mov edx, dword [ebp - 0x6d8]
mov dword [0x50bd368], esi
jne 0x10015fe6
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp byte [ebp - 0x6dd], 0
jbe 0x10016081
mov ecx, eax
add edi, eax
shl ebx, cl
add ebx, edx
cmp edi, 0x10
jb 0x10016081
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001603c
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016020
mov edx, dword [ebp - 0x6ec]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10016066
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
cmp dl, 0xff
jne 0x10016081
mov byte [eax], 0
inc dword [0x50bd368]
mov edx, dword [ebp - 0x6e4]
mov eax, dword [ebp - 0x718]
mov esi, dword [ebp - 0x6f8]
mov cx, word [ebp - 0x700]
movzx eax, ax
mov dword [ebp - 0x6f0], eax
mov eax, dword [ebp + edx*4 - 0x2e8]
inc edx
shl word [esi], cl
mov dword [ebp - 0x6e4], edx
lea esi, [esi + eax*2]
mov dword [ebp - 0x6f8], esi
mov esi, dword [0x50bd368]
cmp edx, dword [ebp - 0x734]
jae 0x100160d6
mov ecx, dword [ebp - 0x6f8]
jmp 0x10015de0
mov edx, dword [ebp - 0x71c]
cmp dword [ebp + 0xc], 1
je 0x1001671f
cmp dword [ebp - 0x1f4], 0
mov dword [ebp - 0x6e4], 0
jbe 0x10016406
lea ecx, [ecx]
mov eax, dword [ebp - 0x708]
mov cx, word [ebp - 0x714]
mov ax, word [eax]
sar ax, cl
movzx eax, ax
mov dword [ebp - 0x718], eax
sub eax, edx
movzx eax, ax
test ax, ax
jns 0x1001624b
movsx ecx, ax
mov eax, 0x50b87a8
sub eax, ecx
mov dword [ebp - 0x6d8], ecx
mov al, byte [eax]
movzx edx, al
mov dword [ebp - 0x71c], edx
mov ecx, dword [edx*4 + 0x50be0b4]
add edi, ecx
shl ebx, cl
add ebx, dword [edx*4 + 0x50be0f4]
mov edx, ebx
mov dword [ebp - 0x6ec], edx
cmp edi, 0x10
jb 0x100161ea
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x1001619c
lea ebx, [ebx]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016180
mov edx, dword [ebp - 0x6ec]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100161c6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x100161ea
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov ecx, dword [ebp - 0x71c]
mov ebx, 1
mov eax, dword [ebp - 0x6d8]
add edi, ecx
shl ebx, cl
dec eax
dec ebx
shl edx, cl
and ebx, eax
add ebx, edx
cmp edi, 0x10
jb 0x100163b1
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001636c
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016230
jmp 0x10016366
movsx edx, ax
mov dword [ebp - 0x6d8], edx
mov al, byte [edx + 0x50b87a8]
mov byte [ebp - 0x6dd], al
movzx eax, al
mov dword [ebp - 0x71c], eax
mov ecx, dword [eax*4 + 0x50be0b4]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50be0f4]
cmp edi, 0x10
jb 0x10016316
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x100162bc
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100162a0
mov edx, dword [ebp - 0x6ec]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100162e6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x71c]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
cmp dl, 0xff
mov edx, dword [ebp - 0x6d8]
mov dword [0x50bd368], esi
jne 0x10016316
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp byte [ebp - 0x6dd], 0
jbe 0x100163b1
mov ecx, eax
add edi, eax
shl ebx, cl
add ebx, edx
cmp edi, 0x10
jb 0x100163b1
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001636c
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016350
mov edx, dword [ebp - 0x6ec]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10016396
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
cmp dl, 0xff
jne 0x100163b1
mov byte [eax], 0
inc dword [0x50bd368]
mov edx, dword [ebp - 0x6e4]
mov eax, dword [ebp - 0x718]
mov esi, dword [ebp - 0x708]
mov cx, word [ebp - 0x70c]
movzx eax, ax
mov dword [ebp - 0x71c], eax
mov eax, dword [ebp + edx*4 - 0x2a8]
inc edx
shl word [esi], cl
mov dword [ebp - 0x6e4], edx
lea esi, [esi + eax*2]
mov dword [ebp - 0x708], esi
mov esi, dword [0x50bd368]
cmp edx, dword [ebp - 0x1f4]
jae 0x10016406
mov edx, dword [ebp - 0x71c]
jmp 0x10016100
cmp dword [ebp - 0x1f0], 0
mov dword [ebp - 0x720], 0
jbe 0x1001671f
lea ecx, [ecx]
mov eax, dword [ebp - 0x728]
mov cx, word [ebp - 0x704]
mov ax, word [eax]
sar ax, cl
movzx eax, ax
mov dword [ebp - 0x718], eax
sub eax, dword [ebp - 0x724]
movzx eax, ax
test ax, ax
jns 0x1001656b
movsx ecx, ax
mov eax, 0x50b87a8
sub eax, ecx
mov dword [ebp - 0x6e4], ecx
mov al, byte [eax]
movzx edx, al
mov dword [ebp - 0x6d8], edx
mov ecx, dword [edx*4 + 0x50be0b4]
add edi, ecx
shl ebx, cl
add ebx, dword [edx*4 + 0x50be0f4]
mov edx, ebx
mov dword [ebp - 0x6ec], edx
cmp edi, 0x10
jb 0x1001650a
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x100164bc
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100164a0
mov edx, dword [ebp - 0x6ec]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100164e6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x1001650a
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov ecx, dword [ebp - 0x6d8]
mov ebx, 1
mov eax, dword [ebp - 0x6e4]
add edi, ecx
shl ebx, cl
dec eax
dec ebx
shl edx, cl
and ebx, eax
add ebx, edx
cmp edi, 0x10
jb 0x100166d1
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001668c
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016550
jmp 0x10016686
movsx edx, ax
mov dword [ebp - 0x6e4], edx
mov al, byte [edx + 0x50b87a8]
mov byte [ebp - 0x6dd], al
movzx eax, al
mov dword [ebp - 0x6d8], eax
mov ecx, dword [eax*4 + 0x50be0b4]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50be0f4]
cmp edi, 0x10
jb 0x10016636
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x100165dc
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100165c0
mov edx, dword [ebp - 0x6ec]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10016606
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x6d8]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
cmp dl, 0xff
mov edx, dword [ebp - 0x6e4]
mov dword [0x50bd368], esi
jne 0x10016636
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp byte [ebp - 0x6dd], 0
jbe 0x100166d1
mov ecx, eax
add edi, eax
shl ebx, cl
add ebx, edx
cmp edi, 0x10
jb 0x100166d1
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6ec], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001668c
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016670
mov edx, dword [ebp - 0x6ec]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100166b6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
cmp dl, 0xff
jne 0x100166d1
mov byte [eax], 0
inc dword [0x50bd368]
mov edx, dword [ebp - 0x720]
mov eax, dword [ebp - 0x718]
mov esi, dword [ebp - 0x728]
mov cx, word [ebp - 0x6e8]
movzx eax, ax
mov dword [ebp - 0x724], eax
mov eax, dword [ebp + edx*4 - 0x268]
inc edx
shl word [esi], cl
mov dword [ebp - 0x720], edx
lea esi, [esi + eax*2]
mov dword [ebp - 0x728], esi
mov esi, dword [0x50bd368]
cmp edx, dword [ebp - 0x1f0]
jb 0x10016420
mov eax, dword [ebp - 0x6fc]
mov edx, dword [ebp - 0x71c]
inc eax
mov ecx, dword [ebp - 0x6f8]
mov dword [ebp - 0x6fc], eax
cmp eax, dword [ebp - 0x738]
jb 0x10015dc0
mov eax, dword [ebp - 0x708]
add ecx, dword [ebp - 0x72c]
add eax, dword [ebp - 0x6dc]
inc dword [ebp - 0x710]
mov dword [ebp - 0x6f8], ecx
mov ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x708], eax
lea edx, [ecx + ecx]
mov ecx, dword [ebp - 0x6f8]
add dword [ebp - 0x728], edx
mov edx, dword [ebp - 0x744]
cmp dword [ebp - 0x710], edx
mov edx, dword [ebp - 0x71c]
jb 0x10015da3
jmp 0x100190e2
lea eax, [esi + 0xe]
cmp eax, dword [0x50bd36c]
jbe 0x100167c1
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 0xe]
cmp eax, dword [0x50bd36c]
ja 0x100167a5
mov edx, dword [ebp - 0x6d8]
mov byte [esi], 0xff
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0xda
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], bl
mov eax, dword [0x50bd368]
inc eax
cmp dword [ebp + 0xc], 1
mov dword [0x50bd368], eax
jne 0x1001681e
mov byte [eax], 8
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], bl
jmp 0x10016882
mov byte [eax], 0xc
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 3
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], bl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 2
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0x11
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 3
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0x11
mov eax, dword [0x50bd368]
mov esi, dword [ebp - 0x728]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], bl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], bl
mov eax, dword [ebp - 0x708]
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [eax]
shl al, 4
or al, byte [esi]
mov byte [ecx], al
mov esi, dword [0x50bd368]
mov ecx, dword [ebp - 0x744]
inc esi
mov dword [0x50bd368], esi
test ecx, ecx
je 0x100191cb
mov eax, dword [ebp - 0x740]
add eax, eax
mov dword [ebp - 0x700], ecx
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x72c], eax
mov eax, dword [ebp - 0x200]
add eax, eax
mov dword [ebp - 0x730], eax
mov eax, dword [ebp - 0x1fc]
add eax, eax
mov dword [ebp - 0x6ec], eax
mov eax, dword [ebp - 0x6e4]
jmp 0x10016920
cmp dword [ebp - 0x738], 0
jbe 0x10016bd8
mov eax, dword [ebp - 0x738]
mov dword [ebp - 0x6f0], eax
lea esp, [esp]
xor ecx, ecx
cmp dword [ebp - 0x734], ecx
jbe 0x1001697d
mov esi, dword [ebp - 0x734]
add edi, esi
movzx eax, word [edx]
add ebx, ebx
test ax, ax
jns 0x1001695d
inc ebx
add eax, eax
mov word [edx], ax
mov eax, dword [ebp + ecx*4 - 0x2e8]
inc ecx
lea edx, [edx + eax*2]
cmp ecx, esi
jb 0x10016952
mov esi, dword [0x50bd368]
mov dword [ebp - 0x6d8], edx
cmp edi, 0x10
jb 0x10016a0a
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x100169bc
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100169a0
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100169e6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10016a0a
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dword [ebp + 0xc], 1
je 0x10016bba
xor ecx, ecx
cmp dword [ebp - 0x1f4], ecx
jbe 0x10016a5b
mov esi, dword [ebp - 0x1f4]
add edi, esi
mov edx, dword [ebp - 0x6e4]
lea esp, [esp]
movzx eax, word [edx]
add ebx, ebx
test ax, ax
jns 0x10016a3b
inc ebx
add eax, eax
mov word [edx], ax
mov eax, dword [ebp + ecx*4 - 0x2a8]
inc ecx
lea edx, [edx + eax*2]
cmp ecx, esi
jb 0x10016a30
mov esi, dword [0x50bd368]
mov dword [ebp - 0x6e4], edx
cmp edi, 0x10
jb 0x10016aea
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x10016a9c
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016a80
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10016ac6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10016aea
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
xor ecx, ecx
cmp dword [ebp - 0x1f0], ecx
jbe 0x10016b2d
mov esi, dword [ebp - 0x1f0]
add edi, esi
mov edx, dword [ebp - 0x6fc]
movzx eax, word [edx]
add ebx, ebx
test ax, ax
jns 0x10016b0d
inc ebx
add eax, eax
mov word [edx], ax
mov eax, dword [ebp + ecx*4 - 0x268]
inc ecx
lea edx, [edx + eax*2]
cmp ecx, esi
jb 0x10016b02
mov esi, dword [0x50bd368]
mov dword [ebp - 0x6fc], edx
cmp edi, 0x10
jb 0x10016bba
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x10016b6c
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10016b50
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10016b96
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10016bba
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
dec dword [ebp - 0x6f0]
mov edx, dword [ebp - 0x6d8]
jne 0x10016940
mov eax, dword [ebp - 0x6e4]
mov ecx, dword [ebp - 0x6fc]
add edx, dword [ebp - 0x72c]
add eax, dword [ebp - 0x730]
add ecx, dword [ebp - 0x6ec]
dec dword [ebp - 0x700]
mov dword [ebp - 0x6d8], edx
mov dword [ebp - 0x6e4], eax
mov dword [ebp - 0x6fc], ecx
jne 0x10016920
jmp 0x100190e2
lea eax, [ebp - 0x6d0]
add eax, ecx
mov dword [ebp - 0x714], eax
mov eax, dword [eax]
mov edx, dword [ebp + eax*4 - 0x210]
mov dword [ebp - 0x708], edx
mov edx, dword [ebp + eax*4 - 0x21c]
mov dword [ebp - 0x728], edx
mov edx, dword [ebp + eax*4 - 0x228]
mov dword [ebp - 0x6e8], edx
test eax, eax
jne 0x10016c50
mov esi, dword [0x50bd340]
jmp 0x10016c72
cmp eax, 1
jne 0x10016c62
mov eax, dword [0x50bd348]
mov dword [ebp - 0x6f4], eax
jmp 0x10016c78
mov esi, dword [ebp - 0x6f4]
cmp eax, 2
cmove esi, dword [0x50bd350]
mov dword [ebp - 0x6f4], esi
lea eax, [ebp - 0x6c0]
add eax, ecx
mov dword [ebp - 0x6ec], eax
push 0x400
push 0
mov al, byte [eax]
mov byte [ebp - 0x6d3], al
lea eax, [ebp - 0x6c4]
add eax, ecx
mov dword [ebp - 0x704], eax
push 0x50bdcac
mov al, byte [eax]
mov byte [ebp - 0x6dd], al
mov eax, dword [ebp + ecx - 0x6cc]
mov dword [ebp - 0x71c], eax
call fcn.1000b461
mov edx, dword [ebp - 0x708]
add esp, 0xc
xor esi, esi
cmp byte [ebp - 0x6dd], bl
jne 0x100178f3
test edx, edx
je 0x10016ebc
mov eax, dword [ebp - 0x6e8]
movzx ecx, byte [ebp - 0x6d3]
add eax, eax
mov ebx, dword [ebp - 0x728]
mov edi, dword [ebp - 0x6f4]
mov dword [ebp - 0x70c], eax
mov eax, edx
mov edx, dword [ebp - 0x70c]
mov dword [ebp - 0x6f0], ecx
mov dword [ebp - 0x710], eax
test ebx, ebx
je 0x10016e6a
mov edx, dword [ebp - 0x6fc]
mov eax, ebx
mov dword [ebp - 0x700], eax
lea esp, [esp]
mov edi, dword [ebp - 0x71c]
xor bl, bl
mov ecx, dword [ebp - 0x6f0]
mov byte [ebp - 0x6d1], bl
cmp edi, edx
ja 0x10016e3c
lea esp, [esp]
mov eax, dword [ebp - 0x6f4]
movsx eax, word [eax + edi*2]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
movzx eax, ax
mov dword [ebp - 0x718], eax
test ax, ax
jne 0x10016da0
mov eax, dword [ebp - 0x6fc]
add bl, 1
mov byte [ebp - 0x6d1], bl
cmp edi, eax
jb 0x10016e27
inc esi
cmp esi, 0x7fff
jne 0x10016e27
inc dword [0x50be02c]
xor esi, esi
jmp 0x10016e27
test esi, esi
je 0x10016dd3
cmp esi, 0x800
jae 0x10016dbe
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdc6c]
jmp 0x10016dd1
shr esi, 0xc
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdf6c]
xor esi, esi
mov dl, byte [ebp - 0x6d1]
cmp dl, 0x10
jb 0x10016df6
movzx eax, dl
shr eax, 4
add dword [0x50be06c], eax
lea ebx, [ebx]
add dl, 0xf0
dec eax
jne 0x10016df0
mov eax, dword [ebp - 0x718]
cwde
movzx ecx, byte [eax + 0x50b87a8]
movzx eax, dl
shl eax, 4
add ecx, eax
mov eax, dword [ebp - 0x6fc]
inc dword [ecx*4 + 0x50bdcac]
xor bl, bl
mov ecx, dword [ebp - 0x6f0]
mov byte [ebp - 0x6d1], bl
inc edi
cmp edi, eax
jbe 0x10016d50
mov eax, dword [ebp - 0x700]
mov edx, dword [ebp - 0x6fc]
mov edi, dword [ebp - 0x6f4]
sub edi, 0xffffff80
dec eax
mov dword [ebp - 0x6f4], edi
mov dword [ebp - 0x700], eax
jne 0x10016d30
mov eax, dword [ebp - 0x710]
mov edx, dword [ebp - 0x70c]
mov ebx, dword [ebp - 0x728]
add edi, edx
dec eax
mov dword [ebp - 0x6f4], edi
mov dword [ebp - 0x710], eax
jne 0x10016d16
mov ebx, dword [ebp - 0x724]
mov edi, dword [ebp - 0x720]
test esi, esi
je 0x10016ebc
cmp esi, 0x800
jae 0x10016ea9
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdc6c]
jmp 0x10016ebc
shr esi, 0xc
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdf6c]
lea eax, [ebp - 0x73c]
push eax
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0xff
push 0xfa
push 0x50bdcac
call fcn.10014e10
push 0
push 0x50bd4ac
push 0x50bd8ac
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.100144f0
mov eax, dword [ebp - 0x73c]
add esp, 0x2c
mov ecx, dword [0x50bd368]
add eax, 0x13
movzx edx, ax
movzx esi, dx
mov dword [ebp - 0x6dc], edx
lea eax, [ecx + 2]
add eax, esi
cmp eax, dword [0x50bd36c]
jbe 0x10016f4e
lea esp, [esp]
call fcn.1001ba20
mov ecx, dword [0x50bd368]
lea eax, [ecx + 2]
add eax, esi
cmp eax, dword [0x50bd36c]
ja 0x10016f30
mov edx, dword [ebp - 0x6dc]
mov byte [ecx], 0xff
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
push 0x10
mov byte [eax], 0xc4
mov eax, edx
mov ecx, dword [0x50bd368]
shr eax, 8
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], al
lea ecx, [ebp - 0x3c]
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
push ecx
mov byte [eax], dl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0x10
mov eax, dword [0x50bd368]
inc eax
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov eax, dword [0x50bd368]
lea ecx, [ebp - 0x12c]
mov esi, dword [ebp - 0x73c]
add eax, 0x10
push esi
push ecx
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov ecx, dword [0x50bd368]
add esp, 0x18
add ecx, esi
mov dword [0x50bd368], ecx
lea eax, [ecx + 0xe]
cmp eax, dword [0x50bd36c]
jbe 0x10016ff8
call fcn.1001ba20
mov ecx, dword [0x50bd368]
lea eax, [ecx + 0xe]
cmp eax, dword [0x50bd36c]
ja 0x10016fe2
mov byte [ecx], 0xff
mov eax, dword [0x50bd368]
inc eax
mov edx, dword [ebp - 0x714]
mov dword [0x50bd368], eax
mov esi, dword [ebp - 0x6ec]
mov byte [eax], 0xda
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 8
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov ecx, dword [0x50bd368]
movzx eax, byte [edx]
inc ecx
inc al
mov dword [0x50bd368], ecx
mov byte [ecx], al
mov eax, dword [0x50bd368]
mov ecx, dword [ebp - 0x71c]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], cl
mov eax, dword [0x50bd368]
mov ecx, dword [ebp - 0x6fc]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], cl
mov eax, dword [ebp - 0x704]
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
movzx eax, byte [eax]
shl al, 4
or al, byte [esi]
mov byte [ecx], al
mov esi, dword [0x50bd368]
mov eax, dword [edx]
inc esi
mov dword [0x50bd368], esi
test eax, eax
jne 0x100170be
mov eax, dword [0x50bd340]
jmp 0x100170da
cmp eax, 1
jne 0x100170ca
mov eax, dword [0x50bd348]
jmp 0x100170da
cmp eax, 2
mov eax, dword [ebp - 0x6f4]
cmove eax, dword [0x50bd350]
xor ecx, ecx
mov dword [ebp - 0x6f4], eax
mov dword [ebp - 0x6d8], ecx
cmp dword [ebp - 0x708], ecx
jbe 0x100191cb
movzx eax, byte [ebp - 0x6d3]
mov edx, dword [ebp - 0x728]
mov dword [ebp - 0x6dc], eax
mov eax, dword [ebp - 0x6e8]
add eax, eax
mov dword [ebp - 0x730], eax
test edx, edx
je 0x10017749
mov dword [ebp - 0x700], edx
jmp 0x10017130
mov ecx, dword [ebp - 0x71c]
xor al, al
mov byte [ebp - 0x6d1], al
mov eax, ecx
mov dword [ebp - 0x6f8], ecx
cmp ecx, dword [ebp - 0x6fc]
ja 0x10017729
jmp 0x10017160
mov ecx, dword [ebp - 0x6f4]
movsx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0x6dc]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
movzx edx, ax
mov dword [ebp - 0x718], edx
test dx, dx
jne 0x10017307
inc byte [ebp - 0x6d1]
mov eax, dword [ebp - 0x6f8]
cmp eax, dword [ebp - 0x6fc]
jb 0x10017710
mov ecx, dword [ebp - 0x6d8]
inc ecx
mov dword [ebp - 0x6d8], ecx
cmp ecx, 0x7fff
jne 0x10017710
mov ecx, dword [0x50bd82c]
add edi, ecx
shl ebx, cl
add ebx, dword [0x50bdc2c]
cmp edi, 0x10
jb 0x1001725a
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x72c], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001720c
lea ecx, [ecx]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100171f0
mov edx, dword [ebp - 0x72c]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10017236
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x1001725a
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
shl ebx, 0xe
add edi, 0xe
add ebx, 0x3fff
cmp edi, 0x10
jb 0x100172fa
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x72c], edx
cmp eax, dword [0x50bd36c]
jbe 0x100172ac
lea esp, [esp]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10017290
mov edx, dword [ebp - 0x72c]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100172d6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x100172fa
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
xor ecx, ecx
mov dword [ebp - 0x6d8], ecx
jmp 0x1001770a
mov eax, dword [ebp - 0x6d8]
test eax, eax
je 0x10017498
cmp eax, 0x800
jae 0x10017326
mov dl, byte [eax + 0x50b87a8]
dec dl
jmp 0x10017332
shr eax, 0xc
mov dl, byte [eax + 0x50b87a8]
add dl, 0xb
mov al, dl
mov byte [ebp - 0x6d3], dl
shl al, 4
movzx eax, al
mov ecx, dword [eax*4 + 0x50bd4ac]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd8ac]
mov eax, ebx
mov dword [ebp - 0x6f0], eax
cmp edi, 0x10
jb 0x100173e5
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x10017391
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10017375
mov dl, byte [ebp - 0x6d3]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100173bb
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x6f0]
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x100173e5
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
movzx ecx, dl
mov ebx, 1
shl ebx, cl
add edi, ecx
dec ebx
shl eax, cl
and ebx, dword [ebp - 0x6d8]
add ebx, eax
cmp edi, 0x10
jb 0x1001748a
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x72c], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001743c
nop
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10017420
mov edx, dword [ebp - 0x72c]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10017466
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x1001748a
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
xor edx, edx
mov dword [ebp - 0x6d8], edx
mov edx, dword [ebp - 0x718]
mov cl, byte [ebp - 0x6d1]
cmp cl, 0x10
jb 0x10017571
movzx eax, cl
shr eax, 4
mov dword [ebp - 0x6f0], eax
mov ecx, dword [0x50bd86c]
add edi, ecx
shl ebx, cl
add ebx, dword [0x50bdc6c]
cmp edi, 0x10
jb 0x10017550
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x72c], edx
cmp eax, dword [0x50bd36c]
jbe 0x10017502
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100174e6
mov edx, dword [ebp - 0x72c]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x1001752c
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10017550
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov cl, byte [ebp - 0x6d1]
add cl, 0xf0
dec dword [ebp - 0x6f0]
mov byte [ebp - 0x6d1], cl
jne 0x100174b3
mov edx, dword [ebp - 0x718]
movsx eax, dx
shl cl, 4
mov al, byte [eax + 0x50b87a8]
add cl, al
mov byte [ebp - 0x6dd], al
movzx eax, cl
mov ecx, dword [eax*4 + 0x50bd4ac]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd8ac]
cmp edi, 0x10
jb 0x1001762a
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x72c], edx
cmp eax, dword [0x50bd36c]
jbe 0x100175dc
lea ecx, [ecx]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100175c0
mov edx, dword [ebp - 0x72c]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10017606
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x1001762a
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x6f8]
movzx ecx, byte [ebp - 0x6dd]
shl ebx, cl
cmp word [edx + eax*2], 0
mov edx, dword [ebp - 0x718]
jge 0x1001766b
mov edx, 1
or eax, 0xffffffff
sub eax, dword [ebp - 0x718]
shl dx, cl
dec dx
and dx, ax
movzx edx, dx
mov dword [ebp - 0x718], edx
movsx eax, dx
add edi, ecx
add ebx, eax
xor al, al
mov byte [ebp - 0x6d1], al
cmp edi, 0x10
jb 0x1001770a
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x72c], edx
cmp eax, dword [0x50bd36c]
jbe 0x100176bc
lea ecx, [ecx]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100176a0
mov edx, dword [ebp - 0x72c]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100176e6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x1001770a
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov eax, dword [ebp - 0x6f8]
inc eax
mov dword [ebp - 0x6f8], eax
cmp eax, dword [ebp - 0x6fc]
jbe 0x10017160
mov edx, dword [ebp - 0x700]
sub dword [ebp - 0x6f4], 0xffffff80
dec edx
mov dword [ebp - 0x700], edx
jne 0x10017130
mov eax, dword [ebp - 0x730]
mov edx, dword [ebp - 0x728]
add dword [ebp - 0x6f4], eax
dec dword [ebp - 0x708]
mov ecx, dword [ebp - 0x6d8]
jne 0x10017115
test ecx, ecx
je 0x100190e2
cmp ecx, 0x800
jae 0x1001777b
mov dl, byte [ecx + 0x50b87a8]
dec dl
jmp 0x10017789
mov eax, ecx
shr eax, 0xc
mov dl, byte [eax + 0x50b87a8]
add dl, 0xb
mov al, dl
mov byte [ebp - 0x6d1], dl
shl al, 4
movzx eax, al
mov ecx, dword [eax*4 + 0x50bd4ac]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd8ac]
mov eax, ebx
mov dword [ebp - 0x6f0], eax
cmp edi, 0x10
jb 0x10017840
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x100177ec
lea esp, [esp]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100177d0
mov dl, byte [ebp - 0x6d1]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10017816
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x6f0]
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x10017840
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
movzx ecx, dl
mov ebx, 1
shl ebx, cl
add edi, ecx
dec ebx
shl eax, cl
and ebx, dword [ebp - 0x6d8]
add ebx, eax
cmp edi, 0x10
jb 0x100190e2
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001789c
lea ebx, [ebx]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10017880
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100178c6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x100190e2
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
jmp 0x100190e2
mov dword [ebp - 0x6f8], esi
test edx, edx
je 0x10017bcd
mov eax, dword [ebp - 0x6e8]
movzx ecx, byte [ebp - 0x6d3]
add eax, eax
mov dword [ebp - 0x6f0], eax
mov eax, edx
mov edx, dword [ebp - 0x6f0]
mov dword [ebp - 0x6d8], ecx
mov dword [ebp - 0x700], eax
lea ebx, [ebx]
cmp dword [ebp - 0x728], 0
jbe 0x10017b7d
mov edx, dword [ebp - 0x728]
mov dword [ebp - 0x710], edx
lea esp, [esp]
xor al, al
mov dword [ebp - 0x6e4], 0xffffffff
mov byte [ebp - 0x6d1], al
mov eax, dword [ebp - 0x71c]
mov ecx, eax
cmp ecx, dword [ebp - 0x6fc]
mov ecx, dword [ebp - 0x6d8]
mov dword [ebp - 0x70c], eax
ja 0x10017b30
mov edx, dword [ebp - 0x6f4]
movsx eax, word [edx + eax*2]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
movzx edx, ax
mov dword [ebp - 0x718], edx
test dx, dx
jne 0x100179ac
inc byte [ebp - 0x6d1]
jmp 0x10017b11
mov cl, byte [ebp - 0x6d1]
cmp cl, 0x10
jb 0x10017aac
mov eax, dword [ebp - 0x6e4]
cmp eax, 0xffffffff
jne 0x10017a4a
mov eax, dword [ebp - 0x70c]
mov esi, eax
mov dword [ebp - 0x6e4], 0
cmp eax, dword [ebp - 0x6fc]
ja 0x10017a42
mov edi, dword [ebp - 0x6e4]
mov ecx, dword [ebp - 0x6d8]
mov ebx, dword [ebp - 0x6fc]
jmp 0x10017a00
mov eax, dword [ebp - 0x6f4]
movsx eax, word [eax + esi*2]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
cmp eax, 1
cmove edi, esi
inc esi
cmp esi, ebx
jbe 0x10017a00
mov ebx, dword [ebp - 0x724]
mov cl, byte [ebp - 0x6d1]
mov edx, dword [ebp - 0x718]
mov dword [ebp - 0x6e4], edi
mov edi, dword [ebp - 0x720]
mov eax, dword [ebp - 0x6e4]
jmp 0x10017a44
xor eax, eax
mov esi, dword [ebp - 0x6f8]
cmp dword [ebp - 0x70c], eax
ja 0x10017bae
test esi, esi
je 0x10017a8f
cmp esi, 0x800
jae 0x10017a74
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdc6c]
jmp 0x10017a87
shr esi, 0xc
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdf6c]
xor esi, esi
mov dword [ebp - 0x6f8], esi
movzx eax, cl
shr eax, 4
add dword [0x50be06c], eax
jmp 0x10017aa0
add cl, 0xf0
dec eax
jne 0x10017aa0
mov byte [ebp - 0x6d1], cl
cmp dx, 1
jne 0x10017b01
test esi, esi
je 0x10017aeb
cmp esi, 0x800
jae 0x10017ad0
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdc6c]
jmp 0x10017ae3
shr esi, 0xc
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdf6c]
xor esi, esi
mov dword [ebp - 0x6f8], esi
movzx eax, cl
shl eax, 6
inc dword [eax + 0x50bdcb0]
xor al, al
mov byte [ebp - 0x6d1], al
jmp 0x10017b0b
mov dword [ebp - 0x718], 0
mov ecx, dword [ebp - 0x6d8]
mov eax, dword [ebp - 0x70c]
inc eax
mov dword [ebp - 0x70c], eax
cmp eax, dword [ebp - 0x6fc]
jbe 0x10017982
mov edx, dword [ebp - 0x710]
cmp word [ebp - 0x718], 0
jne 0x10017b5d
mov edx, dword [ebp - 0x710]
inc esi
mov dword [ebp - 0x6f8], esi
cmp esi, 0x7fff
jne 0x10017b5d
inc dword [0x50be02c]
xor esi, esi
mov dword [ebp - 0x6f8], esi
sub dword [ebp - 0x6f4], 0xffffff80
dec edx
mov dword [ebp - 0x710], edx
jne 0x10017950
mov eax, dword [ebp - 0x700]
mov edx, dword [ebp - 0x6f0]
add dword [ebp - 0x6f4], edx
dec eax
mov dword [ebp - 0x700], eax
jne 0x10017930
test esi, esi
je 0x10017bcd
cmp esi, 0x800
jae 0x10017bba
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdc6c]
jmp 0x10017bcd
mov dword [ebp - 0x718], 0
jmp 0x10017b3a
shr esi, 0xc
movzx eax, byte [esi + 0x50b87a8]
shl eax, 6
inc dword [eax + 0x50bdf6c]
lea eax, [ebp - 0x73c]
push eax
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0xff
push 0xfa
push 0x50bdcac
call fcn.10014e10
push 0
push 0x50bd4ac
push 0x50bd8ac
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.100144f0
mov eax, dword [ebp - 0x73c]
add esp, 0x2c
mov ecx, dword [0x50bd368]
add eax, 0x13
movzx edx, ax
movzx esi, dx
mov dword [ebp - 0x6dc], edx
lea eax, [ecx + 2]
add eax, esi
cmp eax, dword [0x50bd36c]
jbe 0x10017c5e
lea ebx, [ebx]
call fcn.1001ba20
mov ecx, dword [0x50bd368]
lea eax, [ecx + 2]
add eax, esi
cmp eax, dword [0x50bd36c]
ja 0x10017c40
mov edx, dword [ebp - 0x6dc]
mov byte [ecx], 0xff
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
push 0x10
mov byte [eax], 0xc4
mov eax, edx
mov ecx, dword [0x50bd368]
shr eax, 8
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], al
lea ecx, [ebp - 0x3c]
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
push ecx
mov byte [eax], dl
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0x10
mov eax, dword [0x50bd368]
inc eax
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov eax, dword [0x50bd368]
lea ecx, [ebp - 0x12c]
mov esi, dword [ebp - 0x73c]
add eax, 0x10
push esi
push ecx
push eax
mov dword [0x50bd368], eax
call fcn.1000b39d
mov ecx, dword [0x50bd368]
add esp, 0x18
add ecx, esi
mov dword [0x50bd368], ecx
lea eax, [ecx + 0xe]
cmp eax, dword [0x50bd36c]
jbe 0x10017d08
call fcn.1001ba20
mov ecx, dword [0x50bd368]
lea eax, [ecx + 0xe]
cmp eax, dword [0x50bd36c]
ja 0x10017cf2
mov byte [ecx], 0xff
mov eax, dword [0x50bd368]
inc eax
mov edx, dword [ebp - 0x714]
mov dword [0x50bd368], eax
mov esi, dword [ebp - 0x6ec]
mov byte [eax], 0xda
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 8
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 1
mov ecx, dword [0x50bd368]
movzx eax, byte [edx]
inc ecx
inc al
mov dword [0x50bd368], ecx
mov byte [ecx], al
mov eax, dword [0x50bd368]
mov ecx, dword [ebp - 0x71c]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], 0
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], cl
mov eax, dword [0x50bd368]
mov ecx, dword [ebp - 0x6fc]
inc eax
mov dword [0x50bd368], eax
mov byte [eax], cl
mov eax, dword [ebp - 0x704]
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
movzx eax, byte [eax]
shl al, 4
or al, byte [esi]
mov byte [ecx], al
inc dword [0x50bd368]
mov eax, dword [edx]
test eax, eax
jne 0x10017dc8
mov esi, dword [0x50bd340]
jmp 0x10017dea
cmp eax, 1
jne 0x10017dda
mov eax, dword [0x50bd348]
mov dword [ebp - 0x6f4], eax
jmp 0x10017df0
mov esi, dword [ebp - 0x6f4]
cmp eax, 2
cmove esi, dword [0x50bd350]
mov dword [ebp - 0x6f4], esi
mov eax, dword [0x50bd364]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x6d8], ecx
mov dword [ebp - 0x714], edx
mov byte [ebp - 0x6d2], 0x80
mov byte [eax], cl
mov esi, dword [0x50bd368]
mov byte [ebp - 0x6d1], 0x80
mov dword [ebp - 0x70c], eax
mov dword [ebp - 0x704], eax
mov dword [ebp - 0x6f0], ecx
cmp dword [ebp - 0x708], ecx
jbe 0x100191cb
movzx eax, byte [ebp - 0x6d3]
mov dword [ebp - 0x700], eax
mov eax, dword [ebp - 0x6e8]
add eax, eax
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x72c], eax
mov eax, ecx
lea esp, [esp]
cmp dword [ebp - 0x728], 0
mov dword [ebp - 0x730], 0
jbe 0x10018d9f
jmp 0x10017e80
mov ecx, dword [ebp - 0x71c]
xor eax, eax
cmp ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x6f8], ecx
mov ecx, dword [ebp - 0x6d8]
mov byte [ebp - 0x6d3], 0
mov dword [ebp - 0x6e4], eax
mov dword [ebp - 0x710], 0xffffffff
ja 0x10018acf
mov eax, dword [ebp - 0x6f8]
mov ecx, dword [ebp - 0x700]
mov edx, dword [ebp - 0x6f4]
movsx eax, word [edx + eax*2]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
movzx edx, ax
mov dword [ebp - 0x718], edx
test dx, dx
jne 0x10017eed
inc byte [ebp - 0x6d3]
jmp 0x10018aa4
cmp byte [ebp - 0x6d3], 0x10
jb 0x100184f2
cmp dword [ebp - 0x710], 0xffffffff
mov eax, dword [ebp - 0x6f8]
mov edx, dword [ebp - 0x6fc]
jne 0x10017f6b
mov dword [ebp - 0x710], 0
mov dword [ebp - 0x6dc], eax
cmp eax, edx
ja 0x10017f6b
mov ebx, dword [ebp - 0x710]
mov edi, eax
mov esi, dword [ebp - 0x6f4]
movsx eax, word [esi + edi*2]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 0x6fc]
sar eax, cl
cmp eax, 1
cmove ebx, edi
inc edi
cmp edi, edx
jbe 0x10017f31
mov esi, dword [ebp - 0x6e8]
mov edi, dword [ebp - 0x720]
mov eax, dword [ebp - 0x6f8]
mov dword [ebp - 0x710], ebx
mov ebx, dword [ebp - 0x724]
cmp eax, dword [ebp - 0x710]
ja 0x10018deb
mov eax, dword [ebp - 0x6d8]
test eax, eax
je 0x10018120
cmp eax, 0x800
jae 0x10017f96
mov dl, byte [eax + 0x50b87a8]
dec dl
jmp 0x10017fa2
shr eax, 0xc
mov dl, byte [eax + 0x50b87a8]
add dl, 0xb
mov al, dl
mov byte [ebp - 0x6dd], dl
shl al, 4
movzx eax, al
mov ecx, dword [eax*4 + 0x50bd4ac]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd8ac]
mov eax, ebx
mov dword [ebp - 0x6ec], eax
cmp edi, 0x10
jb 0x10018061
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x10018001
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10017fe5
mov dl, byte [ebp - 0x6dd]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x1001802b
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x6ec]
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x10018061
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
movzx ecx, dl
mov ebx, 1
shl ebx, cl
add edi, ecx
dec ebx
shl eax, cl
and ebx, dword [ebp - 0x6d8]
add ebx, eax
cmp edi, 0x10
jb 0x10018116
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x100180bc
jmp 0x100180a0
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100180a0
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100180e6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10018116
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
mov dword [ebp - 0x6d8], 0
mov edx, dword [ebp - 0x714]
test edx, edx
je 0x1001821e
mov al, byte [ebp - 0x6d2]
mov ecx, dword [ebp - 0x704]
lea ebx, [ebx]
add ebx, ebx
test byte [ecx], al
je 0x10018147
inc ebx
inc edi
cmp edi, 0x10
jb 0x100181ec
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001818c
jmp 0x10018170
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018170
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100181b6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [ebp - 0x6d2]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
mov ecx, dword [ebp - 0x704]
inc esi
cmp dl, 0xff
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x714]
jne 0x100181ec
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
shr al, 1
mov byte [ebp - 0x6d2], al
jne 0x10018205
mov al, 0x80
inc ecx
mov byte [ebp - 0x6d2], al
mov dword [ebp - 0x704], ecx
dec edx
mov dword [ebp - 0x714], edx
jne 0x10018140
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x6e8], esi
mov ecx, dword [0x50bd86c]
add edi, ecx
shl ebx, cl
add ebx, dword [0x50bdc6c]
mov dword [ebp - 0x724], ebx
mov dword [ebp - 0x720], edi
cmp edi, 0x10
jb 0x100182d9
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov dword [ebp - 0x720], edi
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001827f
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018263
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100182a9
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x100182d9
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
mov al, byte [ebp - 0x6d3]
mov edx, dword [ebp - 0x6e4]
add al, 0xf0
mov byte [ebp - 0x6d3], al
test edx, edx
je 0x100183fc
mov al, byte [ebp - 0x6d2]
mov ecx, dword [ebp - 0x704]
add ebx, ebx
test byte [ecx], al
je 0x10018308
inc ebx
inc edi
cmp edi, 0x10
jb 0x100183ac
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001834c
lea esp, [esp]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018330
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018376
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [ebp - 0x6d2]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
mov ecx, dword [ebp - 0x704]
inc esi
cmp dl, 0xff
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x6e4]
jne 0x100183ac
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
shr al, 1
mov byte [ebp - 0x6d2], al
jne 0x100183c5
mov al, 0x80
inc ecx
mov byte [ebp - 0x6d2], al
mov dword [ebp - 0x704], ecx
dec edx
mov dword [ebp - 0x6e4], edx
jne 0x10018301
mov al, byte [ebp - 0x6d3]
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x724], ebx
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x724], ebx
cmp al, 0x10
jb 0x100184f8
movzx eax, al
shr eax, 4
mov dword [ebp - 0x6ec], eax
mov al, byte [ebp - 0x6d3]
mov ecx, dword [0x50bd86c]
add edi, ecx
shl ebx, cl
add ebx, dword [0x50bdc6c]
cmp edi, 0x10
jb 0x100184c0
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001846c
lea esp, [esp]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018450
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018496
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [ebp - 0x6d3]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x100184c0
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
add al, 0xf0
dec dword [ebp - 0x6ec]
mov byte [ebp - 0x6d3], al
jne 0x10018416
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x724], ebx
mov edx, dword [ebp - 0x6e4]
mov eax, dword [ebp - 0x718]
cmp ax, 1
jne 0x10018a48
mov eax, dword [ebp - 0x6d8]
test eax, eax
je 0x100186b0
cmp eax, 0x800
jae 0x10018527
mov dl, byte [eax + 0x50b87a8]
dec dl
jmp 0x10018533
shr eax, 0xc
mov dl, byte [eax + 0x50b87a8]
add dl, 0xb
mov al, dl
mov byte [ebp - 0x6dd], dl
shl al, 4
movzx eax, al
mov ecx, dword [eax*4 + 0x50bd4ac]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd8ac]
mov eax, ebx
mov dword [ebp - 0x6ec], eax
cmp edi, 0x10
jb 0x100185f2
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x10018592
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018576
mov dl, byte [ebp - 0x6dd]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100185bc
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x6ec]
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x100185f2
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
movzx ecx, dl
mov ebx, 1
shl ebx, cl
add edi, ecx
dec ebx
shl eax, cl
and ebx, dword [ebp - 0x6d8]
add ebx, eax
cmp edi, 0x10
jb 0x100186a6
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001864c
lea esp, [esp]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018630
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018676
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x100186a6
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
mov dword [ebp - 0x6d8], 0
mov edx, dword [ebp - 0x714]
test edx, edx
je 0x100187ae
mov al, byte [ebp - 0x6d2]
mov ecx, dword [ebp - 0x704]
lea ebx, [ebx]
add ebx, ebx
test byte [ecx], al
je 0x100186d7
inc ebx
inc edi
cmp edi, 0x10
jb 0x1001877c
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001871c
jmp 0x10018700
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018700
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018746
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [ebp - 0x6d2]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
mov ecx, dword [ebp - 0x704]
inc esi
cmp dl, 0xff
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x714]
jne 0x1001877c
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
shr al, 1
mov byte [ebp - 0x6d2], al
jne 0x10018795
mov al, 0x80
inc ecx
mov byte [ebp - 0x6d2], al
mov dword [ebp - 0x704], ecx
dec edx
mov dword [ebp - 0x714], edx
jne 0x100186d0
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x6e8], esi
mov al, byte [ebp - 0x6d3]
shl al, 4
inc al
movzx eax, al
mov ecx, dword [eax*4 + 0x50bd4ac]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd8ac]
cmp edi, 0x10
jb 0x10018867
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001880d
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100187f1
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018837
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10018867
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
mov eax, dword [ebp - 0x6f8]
add ebx, ebx
mov ecx, dword [ebp - 0x6f4]
mov dword [ebp - 0x724], ebx
cmp word [ecx + eax*2], 0
jle 0x10018889
inc ebx
mov dword [ebp - 0x724], ebx
inc edi
mov byte [ebp - 0x6d3], 0
mov dword [ebp - 0x720], edi
cmp edi, 0x10
jb 0x10018936
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov dword [ebp - 0x720], edi
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x100188dc
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x100188c0
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018906
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10018936
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x6e4]
test edx, edx
je 0x10018a9e
mov al, byte [ebp - 0x6d2]
mov ecx, dword [ebp - 0x704]
add ebx, ebx
test byte [ecx], al
je 0x10018957
inc ebx
inc edi
cmp edi, 0x10
jb 0x100189fc
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001899c
jmp 0x10018980
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018980
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x100189c6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [ebp - 0x6d2]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
mov ecx, dword [ebp - 0x704]
inc esi
cmp dl, 0xff
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x6e4]
jne 0x100189fc
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
shr al, 1
mov byte [ebp - 0x6d2], al
jne 0x10018a15
mov al, 0x80
inc ecx
mov byte [ebp - 0x6d2], al
mov dword [ebp - 0x704], ecx
dec edx
mov dword [ebp - 0x6e4], edx
jne 0x10018950
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x724], ebx
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x724], ebx
jmp 0x10018a9e
mov cl, byte [ebp - 0x6d1]
test al, 1
mov eax, dword [ebp - 0x70c]
je 0x10018a66
or byte [eax], cl
mov esi, dword [0x50bd368]
mov dword [ebp - 0x6e8], esi
shr cl, 1
mov byte [ebp - 0x6d1], cl
jne 0x10018a8d
inc eax
mov byte [ebp - 0x6d1], 0x80
mov dword [ebp - 0x70c], eax
mov byte [eax], 0
mov esi, dword [0x50bd368]
mov dword [ebp - 0x6e8], esi
inc edx
mov dword [ebp - 0x718], 0
mov dword [ebp - 0x6e4], edx
mov ecx, dword [ebp - 0x700]
mov eax, dword [ebp - 0x6f8]
inc eax
mov dword [ebp - 0x6f8], eax
cmp eax, dword [ebp - 0x6fc]
jbe 0x10017ec3
mov eax, dword [ebp - 0x6e4]
mov ecx, dword [ebp - 0x6d8]
mov edx, dword [ebp - 0x714]
cmp word [ebp - 0x718], 0
jne 0x10018d79
inc ecx
add edx, eax
mov dword [ebp - 0x6d8], ecx
mov dword [ebp - 0x714], edx
cmp ecx, 0x7fff
jne 0x10018d79
mov ecx, dword [0x50bd82c]
add edi, ecx
shl ebx, cl
add ebx, dword [0x50bdc2c]
cmp edi, 0x10
jb 0x10018bac
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x10018b4c
jmp 0x10018b30
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018b30
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018b76
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
cmp dl, 0xff
mov edx, dword [ebp - 0x714]
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
jne 0x10018bac
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
shl ebx, 0xe
add edi, 0xe
add ebx, 0x3fff
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x724], ebx
cmp edi, 0x10
jb 0x10018c6c
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov dword [ebp - 0x720], edi
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x10018c0c
lea ecx, [ecx]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018bf0
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018c36
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
cmp dl, 0xff
mov edx, dword [ebp - 0x714]
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
jne 0x10018c6c
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [ebp - 0x6e8], esi
mov dword [0x50bd368], esi
xor ecx, ecx
mov dword [ebp - 0x6d8], ecx
test edx, edx
je 0x10018d79
mov al, byte [ebp - 0x6d2]
mov ecx, dword [ebp - 0x704]
add ebx, ebx
test byte [ecx], al
je 0x10018c8f
inc ebx
inc edi
cmp edi, 0x10
jb 0x10018d2f
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x10018ccf
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018cb3
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018cf9
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [ebp - 0x6d2]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
mov ecx, dword [ebp - 0x704]
inc esi
cmp dl, 0xff
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x714]
jne 0x10018d2f
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
shr al, 1
mov byte [ebp - 0x6d2], al
jne 0x10018d48
mov al, 0x80
inc ecx
mov byte [ebp - 0x6d2], al
mov dword [ebp - 0x704], ecx
dec edx
mov dword [ebp - 0x714], edx
jne 0x10018c88
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x724], ebx
mov dword [ebp - 0x720], edi
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x724], ebx
mov eax, dword [ebp - 0x730]
sub dword [ebp - 0x6f4], 0xffffff80
inc eax
mov dword [ebp - 0x730], eax
cmp eax, dword [ebp - 0x728]
jb 0x10017e80
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x6f4]
inc eax
add ecx, dword [ebp - 0x72c]
mov dword [ebp - 0x6f4], ecx
mov ecx, dword [ebp - 0x6d8]
mov dword [ebp - 0x6f0], eax
cmp eax, dword [ebp - 0x708]
jb 0x10017e60
test ecx, ecx
je 0x10018ffa
cmp ecx, 0x800
jae 0x10018e95
mov dl, byte [ecx + 0x50b87a8]
dec dl
jmp 0x10018ea3
cmp eax, edx
ja 0x10018e74
mov edi, dword [ebp - 0x6e4]
mov ebx, dword [ebp - 0x70c]
nop
mov edx, dword [ebp - 0x6f4]
movsx eax, word [edx + eax*2]
cdq
xor eax, edx
sub eax, edx
sar eax, cl
movzx eax, ax
test ax, ax
je 0x10018e3b
test al, 1
mov al, byte [ebp - 0x6d1]
je 0x10018e25
or byte [ebx], al
shr al, 1
mov byte [ebp - 0x6d1], al
jne 0x10018e3a
inc ebx
mov byte [ebp - 0x6d1], 0x80
mov byte [ebx], 0
inc edi
mov eax, dword [ebp - 0x6f8]
inc eax
mov dword [ebp - 0x6f8], eax
cmp eax, dword [ebp - 0x6fc]
jbe 0x10018e00
mov esi, dword [0x50bd368]
mov dword [ebp - 0x70c], ebx
mov ebx, dword [ebp - 0x724]
mov dword [ebp - 0x6e4], edi
mov edi, dword [ebp - 0x720]
mov dword [ebp - 0x6e8], esi
mov eax, dword [ebp - 0x6e4]
mov ecx, dword [ebp - 0x6d8]
mov edx, dword [ebp - 0x714]
mov dword [ebp - 0x718], 0
jmp 0x10018add
mov eax, ecx
shr eax, 0xc
mov dl, byte [eax + 0x50b87a8]
add dl, 0xb
mov al, dl
mov byte [ebp - 0x6dd], dl
shl al, 4
movzx eax, al
mov ecx, dword [eax*4 + 0x50bd4ac]
add edi, ecx
shl ebx, cl
add ebx, dword [eax*4 + 0x50bd8ac]
mov eax, ebx
mov dword [ebp - 0x730], eax
cmp edi, 0x10
jb 0x10018f56
sub edi, 0x10
lea eax, [esi + 4]
mov ecx, edi
shr ebx, cl
cmp eax, dword [0x50bd36c]
jbe 0x10018f02
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018ee6
mov dl, byte [ebp - 0x6dd]
mov eax, ebx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018f2c
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov eax, dword [ebp - 0x730]
mov byte [ecx], bl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp bl, 0xff
jne 0x10018f56
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
movzx ecx, dl
mov ebx, 1
shl ebx, cl
add edi, ecx
dec ebx
shl eax, cl
and ebx, dword [ebp - 0x6d8]
add ebx, eax
cmp edi, 0x10
jb 0x10018ffa
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x10018fac
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10018f90
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10018fd6
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov byte [ecx], dl
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
cmp dl, 0xff
jne 0x10018ffa
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x714]
test edx, edx
je 0x100190e2
mov al, byte [ebp - 0x6d2]
mov ecx, dword [ebp - 0x704]
add ebx, ebx
test byte [ecx], al
je 0x1001901b
inc ebx
inc edi
cmp edi, 0x10
jb 0x100190bc
sub edi, 0x10
lea eax, [esi + 4]
mov edx, ebx
mov ecx, edi
shr edx, cl
mov dword [ebp - 0x6dc], edx
cmp eax, dword [0x50bd36c]
jbe 0x1001905c
nop
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10019040
mov edx, dword [ebp - 0x6dc]
mov eax, edx
shr eax, 8
mov byte [esi], al
mov ecx, dword [0x50bd368]
mov al, byte [ecx]
inc ecx
mov dword [0x50bd368], ecx
cmp al, 0xff
jne 0x10019086
mov byte [ecx], 0
mov ecx, dword [0x50bd368]
inc ecx
mov dword [0x50bd368], ecx
mov al, byte [ebp - 0x6d2]
mov byte [ecx], dl
mov esi, dword [0x50bd368]
mov ecx, dword [ebp - 0x704]
inc esi
cmp dl, 0xff
mov dword [0x50bd368], esi
mov edx, dword [ebp - 0x714]
jne 0x100190bc
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
shr al, 1
mov byte [ebp - 0x6d2], al
jne 0x100190d5
mov al, 0x80
inc ecx
mov byte [ebp - 0x6d2], al
mov dword [ebp - 0x704], ecx
dec edx
mov dword [ebp - 0x714], edx
jne 0x10019014
test edi, edi
je 0x100191cb
mov cx, di
cmp edi, 8
ja 0x10019139
mov eax, 0xff
shr ax, cl
movzx eax, ax
mov dword [ebp - 0x6dc], eax
lea eax, [esi + 2]
cmp eax, dword [0x50bd36c]
jbe 0x10019126
mov edi, edi
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 2]
cmp eax, dword [0x50bd36c]
ja 0x10019110
mov ecx, 8
sub ecx, edi
shl bl, cl
or bl, byte [ebp - 0x6dc]
mov byte [esi], bl
jmp 0x100191a8
mov eax, 0xffff
shr ax, cl
movzx eax, ax
mov dword [ebp - 0x6dc], eax
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
jbe 0x1001916b
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 4]
cmp eax, dword [0x50bd36c]
ja 0x10019155
lea ecx, [edi - 8]
mov eax, ebx
shr eax, cl
mov byte [esi], al
mov edx, dword [0x50bd368]
mov al, byte [edx]
inc edx
mov dword [0x50bd368], edx
cmp al, 0xff
jne 0x10019197
mov byte [edx], 0
mov edx, dword [0x50bd368]
inc edx
mov dword [0x50bd368], edx
mov ecx, 0x10
sub ecx, edi
shl bl, cl
or bl, byte [ebp - 0x6dc]
mov byte [edx], bl
mov esi, dword [0x50bd368]
mov al, byte [esi]
inc esi
mov dword [0x50bd368], esi
cmp al, 0xff
jne 0x100191cb
mov byte [esi], 0
mov esi, dword [0x50bd368]
inc esi
mov dword [0x50bd368], esi
mov ecx, dword [ebp - 0x748]
inc ecx
mov dword [ebp - 0x748], ecx
cmp ecx, dword [ebp + 0x20]
jb 0x10015706
lea eax, [esi + 2]
cmp eax, dword [0x50bd36c]
jbe 0x10019206
lea esp, [esp]
call fcn.1001ba20
mov esi, dword [0x50bd368]
lea eax, [esi + 2]
cmp eax, dword [0x50bd36c]
ja 0x100191f0
mov byte [esi], 0xff
mov eax, dword [0x50bd368]
inc eax
mov dword [0x50bd368], eax
pop edi
pop esi
mov byte [eax], 0xd9
inc dword [0x50bd368]
mov eax, dword [0x50bd364]
pop ebx
test eax, eax
je 0x1001923c
push eax
call 0x10026e50
add esp, 4
mov dword [0x50bd364], 0
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.1000f930
mov esp, ebp
pop ebp
ret