Function at 0x9dc4c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2bc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x130]
mov edx, dword [eax + 0x7cbc]
mov dword [ebp - 0x278], eax
test edx, edx
je 0x9de3c1
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x118]
mov ebx, ecx
shl ebx, 4
add ebx, edx
mov eax, dword [ebx*4 + 0xbfc460]
imul edx, eax, 0x11940
lea ebx, [ecx + 1]
mov ecx, dword [ebp + 8]
imul edx, ebx
mov ebx, dword [ebp - 0x278]
mov eax, edx
mov esi, dword [ebx + 0xce8c]
sar edx, 0x1f
idiv dword [ecx + 0xc]
add eax, dword [ebx + 0xcebc]
shl eax, 3
cmp esi, 7
mov dword [ebp - 0x270], eax
jg 0x9dfea8
test esi, esi
jle 0x9dc6ea
mov eax, dword [ebp - 0x278]
mov ecx, 1
lea ebx, [esi - 1]
mov edi, ebx
and edi, 3
mov edx, dword [eax + 0x1308c]
call fcn.009d8de0
mov edx, dword [ebp + 8]
xor eax, eax
mov ecx, dword [ebp - 0x278]
cmp dword [edx + 0x60], 0
sete al
xor dword [ecx + 0x1308c], eax
test ebx, ebx
je 0x9dc6ea
test edi, edi
je 0x9dc638
cmp edi, 1
je 0x9dc5fb
cmp edi, 2
je 0x9dc5c4
mov edx, dword [ecx + 0x1308c]
mov ecx, 1
mov eax, dword [ebp - 0x278]
call fcn.009d8de0
mov ebx, dword [ebp + 8]
xor ecx, ecx
mov edi, dword [ebp - 0x278]
cmp dword [ebx + 0x60], 0
lea ebx, [esi - 2]
sete cl
xor dword [edi + 0x1308c], ecx
mov edi, dword [ebp - 0x278]
mov ecx, 1
mov eax, dword [ebp - 0x278]
mov edx, dword [edi + 0x1308c]
call fcn.009d8de0
mov edx, dword [ebp + 8]
xor eax, eax
mov esi, dword [ebp - 0x278]
cmp dword [edx + 0x60], 0
sete al
sub ebx, 1
xor dword [esi + 0x1308c], eax
mov edi, dword [ebp - 0x278]
mov ecx, 1
mov eax, dword [ebp - 0x278]
mov edx, dword [edi + 0x1308c]
call fcn.009d8de0
mov esi, dword [ebp + 8]
xor eax, eax
mov ecx, dword [ebp - 0x278]
cmp dword [esi + 0x60], 0
sete al
xor dword [ecx + 0x1308c], eax
sub ebx, 1
je 0x9dc6ea
mov eax, dword [ebp - 0x278]
mov ecx, 1
mov edx, dword [eax + 0x1308c]
mov eax, dword [ebp - 0x278]
call fcn.009d8de0
mov esi, dword [ebp + 8]
xor edx, edx
mov edi, dword [ebp - 0x278]
mov ecx, 1
mov eax, dword [ebp - 0x278]
cmp dword [esi + 0x60], 0
sete dl
xor dword [edi + 0x1308c], edx
mov edx, dword [edi + 0x1308c]
call fcn.009d8de0
xor eax, eax
mov ecx, 1
cmp dword [esi + 0x60], 0
mov esi, dword [ebp - 0x278]
sete al
xor dword [esi + 0x1308c], eax
mov eax, esi
mov edx, dword [esi + 0x1308c]
call fcn.009d8de0
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x60]
test edi, edi
sete cl
movzx eax, cl
mov ecx, 1
xor dword [esi + 0x1308c], eax
mov eax, esi
mov edx, dword [esi + 0x1308c]
call fcn.009d8de0
mov edx, dword [ebp + 8]
xor ecx, ecx
cmp dword [edx + 0x60], 0
sete cl
xor dword [esi + 0x1308c], ecx
sub ebx, 4
jne 0x9dc638
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x270]
call fcn.009d8ef0
mov eax, dword [ebp - 0x278]
mov esi, dword [ebp + 8]
mov edi, dword [eax + 0xdc00]
cmp dword [esi + 0x118], 1
mov dword [ebp - 0x280], edi
mov edi, dword [esi + 0x130]
je 0x9de487
mov ecx, dword [edi + 0x7ca4]
mov dword [ebp - 0x25c], 0
test ecx, ecx
jle 0x9dd5f3
lea ecx, [edi + 0x7d14]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x288], ecx
mov ebx, dword [ebp - 0x288]
add ebx, dword [ebp - 0x44]
cmp dword [ebx + 0x12b4], 2
mov dword [ebp - 0x9c], ebx
je 0x9dda61
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x48], 0
mov edx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x48]
mov ecx, dword [edx + 0x1444]
mov ebx, dword [esi + edx + 0x1448]
mov eax, dword [ecx + esi]
mov dword [ebp - 0x10c], ebx
test eax, eax
mov dword [ebp - 0x26c], eax
jle 0x9dc8d3
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0
lea eax, [edx + ebx*4 + 0x1200]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x10c]
mov esi, dword [ecx]
test edx, edx
mov dword [ebp - 0x108], esi
jle 0x9dc892
mov esi, dword [ebp - 0x10c]
mov eax, dword [edi + 0x7d10]
test eax, eax
jne 0x9dc845
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9dcac1
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dc853
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x108]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dc7f3
add dword [ebp - 0x28], 1
mov ebx, dword [ebp - 0x26c]
add dword [ebp - 0x4c], 4
cmp dword [ebp - 0x28], ebx
jne 0x9dc7d4
mov eax, dword [ebp - 0x3c]
mov edx, ebx
sub edx, 1
mov esi, dword [ebp - 0x264]
add esi, dword [ebp - 0x10c]
lea ebx, [eax + edx + 1]
imul edx, dword [ebp - 0x10c]
mov dword [ebp - 0x3c], ebx
add esi, edx
mov dword [ebp - 0x264], esi
add dword [ebp - 0x48], 4
cmp dword [ebp - 0x48], 0x10
jne 0x9dc793
mov ebx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ebx + 0x12d8]
mov eax, dword [ecx + 0x12a4]
add esi, 1
mov dword [ebp - 0xb4], eax
mov ecx, dword [edi + esi*4 + 0x13098]
mov edx, esi
add edx, dword [ebx + 0x12dc]
mov ebx, dword [ebp - 0xb4]
mov eax, dword [edi + edx*4 + 0x1309c]
mov dword [ebp - 0x30], ecx
cmp ecx, ebx
jle 0x9dc928
mov dword [ebp - 0x30], ebx
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0x2c], eax
cmp eax, esi
jle 0x9dc938
mov dword [ebp - 0x2c], esi
mov ebx, dword [ebp - 0x9c]
mov edx, dword [ebx + 0x12bc]
mov dword [ebp - 0x100], edx
mov esi, dword [ebp - 0x100]
shl edx, 4
add edx, 0xbfbdc0
mov dword [ebp - 0xec], edx
test esi, esi
je 0x9dcb53
mov eax, dword [ebp - 0x30]
test eax, eax
jle 0x9dcb53
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0x104], 0
jmp 0x9dca33
mov edx, ecx
imul edx, esi
mov dword [ebp - 0xf8], 0
test ebx, ebx
je 0x9dc9d4
mov edx, ecx
imul edx, esi
mov esi, dword [ebp - 0xf0]
fldz
mov ecx, dword [ebp - 0x9c]
fcomp dword [ecx + esi*4 + 4]
fnstsw ax
mov esi, dword [ebp - 0xfc]
sahf
seta al
sub dword [ebp - 0xf4], 1
movzx ecx, al
lea eax, [ecx + esi*2]
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0xec]
lea edx, [ebx + edx]
mov esi, dword [ebp - 0xf8]
sub esi, dword [ebp - 0xf4]
mov eax, dword [ecx + 0xc]
movsx ebx, byte [eax + edx]
mov eax, dword [ecx + 8]
add ebx, dword [ebp - 0xf4]
movsx edx, word [eax + edx*2]
mov ecx, ebx
mov eax, edi
call fcn.009d8de0
mov edx, dword [ebp - 0xfc]
mov ecx, esi
mov eax, edi
add esi, ebx
call fcn.009d8de0
add dword [ebp - 0xf0], 2
mov ebx, dword [ebp - 0xf0]
add dword [ebp - 0x104], esi
cmp dword [ebp - 0x30], ebx
jle 0x9dcb5d
mov ebx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xf4], 0
mov edx, ebx
mov esi, dword [ecx]
mov ecx, dword [eax + ebx*4 + 0x900]
mov dword [ebp - 0xfc], 0
mov ebx, dword [eax + ebx*4 + 0x904]
test ecx, ecx
je 0x9dca8d
fldz
fcomp dword [eax + edx*4]
fnstsw ax
mov dword [ebp - 0xf4], 0xffffffff
sahf
seta al
movzx edx, al
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0x100], 0xf
jle 0x9dc98b
cmp ecx, 0xe
jg 0x9dcb34
mov edx, ecx
shl edx, 4
mov dword [ebp - 0xf8], 0
cmp ebx, 0xe
jg 0x9dcb13
mov esi, 0x10
jmp 0x9dc99a
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9dc835
mov ecx, esi
shl dword [ebp - 0xfc], cl
add dword [ebp - 0xf8], esi
lea ecx, [ebx - 0xf]
mov ebx, 0xf
or dword [ebp - 0xfc], ecx
jmp 0x9dc9a3
lea edx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0xfc], edx
mov edx, 0xf0
mov dword [ebp - 0xf8], esi
jmp 0x9dcab2
mov dword [ebp - 0x104], 0
mov edx, dword [ebp - 0x9c]
mov esi, dword [edx + 0x12c0]
mov ebx, esi
shl ebx, 4
add ebx, 0xbfbdc0
test esi, esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xd8], ebx
je 0x9dcf28
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], eax
jle 0x9dcf28
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0xdc], 0
lea ecx, [esi + eax*4 + 0x900]
mov dword [ebp - 0x50], ecx
mov ebx, ecx
mov ecx, dword [ebx]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xc8], 0
test ecx, ecx
mov esi, dword [eax]
mov eax, ebx
mov ebx, dword [ebx + 4]
je 0x9dcbf8
fldz
fcomp dword [eax - 0x900]
fnstsw ax
mov dword [ebp - 0xe0], 0xffffffff
sahf
seta al
movzx edx, al
mov dword [ebp - 0xc8], edx
cmp dword [ebp - 0xe8], 0xf
jle 0x9dced4
cmp ecx, 0xe
jg 0x9dcf09
mov edx, ecx
shl edx, 4
mov dword [ebp - 0xe4], 0
cmp ebx, 0xe
jg 0x9dcee8
mov esi, 0x10
test ebx, ebx
je 0x9dcc5e
mov edx, ecx
imul edx, esi
mov esi, dword [ebp - 0x50]
fldz
fcomp dword [esi - 0x8fc]
fnstsw ax
sahf
seta cl
movzx eax, cl
mov ecx, dword [ebp - 0xc8]
sub dword [ebp - 0xe0], 1
lea esi, [eax + ecx*2]
mov dword [ebp - 0xc8], esi
mov ecx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe4]
sub esi, dword [ebp - 0xe0]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xcc], esi
lea esi, [ebx + edx]
movsx ebx, byte [eax + esi]
add ebx, dword [ebp - 0xe0]
mov eax, dword [ecx + 8]
mov dword [ebp - 0xd4], ebx
mov ebx, dword [ebp - 0xd4]
movsx edx, word [eax + esi*2]
test ebx, ebx
mov dword [ebp - 0xd0], edx
jle 0x9dcd4f
mov esi, dword [ebp - 0xd4]
lea esi, [esi]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9dcd02
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9dce30
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dcd10
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0xd0]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dccb0
mov esi, dword [ebp - 0xcc]
test esi, esi
jle 0x9dce02
mov esi, dword [ebp - 0xcc]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9dcdb5
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dce82
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dcdc3
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0xc8]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dcd63
add dword [ebp - 0x30], 2
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0x30]
add ebx, dword [ebp - 0xd4]
add dword [ebp - 0x50], 8
add dword [ebp - 0xdc], ebx
cmp dword [ebp - 0x2c], esi
jle 0x9dcf32
mov ebx, dword [ebp - 0x50]
jmp 0x9dcbb0
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9dccf2
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9dcda5
mov edx, ecx
imul edx, esi
mov dword [ebp - 0xe4], 0
jmp 0x9dcc2b
mov ecx, esi
shl dword [ebp - 0xc8], cl
add dword [ebp - 0xe4], esi
lea ecx, [ebx - 0xf]
mov ebx, 0xf
or dword [ebp - 0xc8], ecx
jmp 0x9dcc34
lea edx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0xc8], edx
mov edx, 0xf0
mov dword [ebp - 0xe4], esi
jmp 0x9dcc1d
mov dword [ebp - 0xdc], 0
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ecx + 0x12c4]
mov eax, edx
shl eax, 4
add eax, 0xbfbdc0
test edx, edx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xb0], eax
je 0x9dd30c
mov esi, dword [ebp - 0xb4]
cmp dword [ebp - 0x2c], esi
jge 0x9dd30c
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xb8], 0
lea edx, [eax + ebx*4 + 0x900]
mov dword [ebp - 0x54], edx
mov ebx, edx
mov ecx, dword [ebp - 0xb0]
mov eax, ebx
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xa0], 0
mov esi, dword [ecx]
mov ecx, dword [ebx]
mov ebx, dword [ebx + 4]
test ecx, ecx
je 0x9dcfd2
fldz
fcomp dword [eax - 0x900]
fnstsw ax
mov dword [ebp - 0xbc], 0xffffffff
sahf
seta al
movzx edx, al
mov dword [ebp - 0xa0], edx
cmp dword [ebp - 0xc4], 0xf
jle 0x9dd2b4
cmp ecx, 0xe
jg 0x9dd2c8
mov edx, ecx
shl edx, 4
cmp ebx, 0xe
mov dword [ebp - 0xc0], 0
jg 0x9dd2eb
mov esi, 0x10
test ebx, ebx
je 0x9dd038
mov edx, ecx
imul edx, esi
mov esi, dword [ebp - 0x54]
fldz
fcomp dword [esi - 0x8fc]
fnstsw ax
sahf
seta cl
movzx eax, cl
mov ecx, dword [ebp - 0xa0]
sub dword [ebp - 0xbc], 1
lea esi, [eax + ecx*2]
mov dword [ebp - 0xa0], esi
mov ecx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xc0]
sub esi, dword [ebp - 0xbc]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xa4], esi
lea esi, [ebx + edx]
movsx ebx, byte [eax + esi]
add ebx, dword [ebp - 0xbc]
mov eax, dword [ecx + 8]
mov dword [ebp - 0xac], ebx
mov ebx, dword [ebp - 0xac]
movsx edx, word [eax + esi*2]
test ebx, ebx
mov dword [ebp - 0xa8], edx
jle 0x9dd126
mov esi, dword [ebp - 0xac]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9dd0d9
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9dd262
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dd0e7
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0xa8]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dd087
mov esi, dword [ebp - 0xa4]
test esi, esi
jle 0x9dd1df
mov esi, dword [ebp - 0xa4]
lea esi, [esi]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9dd192
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dd210
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dd1a0
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0xa0]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dd140
add dword [ebp - 0x2c], 2
mov ebx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x2c]
add ebx, dword [ebp - 0xac]
add dword [ebp - 0x54], 8
add dword [ebp - 0xb8], ebx
cmp dword [ebp - 0xb4], esi
jle 0x9dd316
mov ebx, dword [ebp - 0x54]
jmp 0x9dcf8a
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9dd182
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9dd0c9
mov edx, ecx
imul edx, esi
mov dword [ebp - 0xc0], 0
jmp 0x9dd005
lea edx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0xa0], edx
cmp ebx, 0xe
mov edx, 0xf0
mov dword [ebp - 0xc0], esi
jle 0x9dd000
mov ecx, esi
shl dword [ebp - 0xa0], cl
add dword [ebp - 0xc0], esi
lea ecx, [ebx - 0xf]
mov ebx, 0xf
or dword [ebp - 0xa0], ecx
jmp 0x9dd00e
mov dword [ebp - 0xb8], 0
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xdc]
add ecx, dword [ebp - 0x104]
add ecx, dword [ebp - 0xb8]
mov edx, dword [eax + 0x12a4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x8c], 0
mov ebx, dword [edx + 0x12a8]
sub ebx, dword [ebp - 0x74]
mov ecx, dword [edx + 0x12e8]
mov esi, ebx
sar esi, 0x1f
shr esi, 0x1e
add esi, ebx
sar esi, 2
test esi, esi
mov dword [ebp - 0x88], esi
jle 0x9dd5af
mov esi, dword [ebp - 0x74]
shl ecx, 4
mov ebx, dword [ebp - 0x9c]
add ecx, 0xbfbfc0
mov dword [ebp - 0x84], ecx
mov ecx, dword [ecx + 0xc]
shl esi, 2
lea edx, [ebx + esi + 0x900]
add esi, dword [ebp - 0x9c]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x94], esi
mov esi, edx
mov eax, dword [esi]
xor edx, edx
mov dword [ebp - 0x98], 0
test eax, eax
je 0x9dd3db
mov edx, dword [ebp - 0x94]
fldz
mov dword [ebp - 0x98], 8
fcomp dword [edx]
fnstsw ax
xor edx, edx
sahf
seta dl
mov ebx, dword [ebp - 0x90]
mov esi, dword [ebx + 4]
test esi, esi
je 0x9dd406
mov esi, dword [ebp - 0x94]
fldz
add dword [ebp - 0x98], 4
fcomp dword [esi + 4]
fnstsw ax
sahf
seta bl
movzx eax, bl
lea edx, [eax + edx*2]
mov eax, dword [ebp - 0x90]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x9dd431
mov esi, dword [ebp - 0x94]
fldz
add dword [ebp - 0x98], 2
fcomp dword [esi + 8]
fnstsw ax
sahf
seta bl
movzx esi, bl
lea edx, [esi + edx*2]
mov eax, dword [ebp - 0x90]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x9dd45c
mov esi, dword [ebp - 0x94]
fldz
add dword [ebp - 0x98], 1
fcomp dword [esi + 0xc]
fnstsw ax
sahf
seta bl
movzx esi, bl
lea edx, [esi + edx*2]
mov eax, dword [ebp - 0x98]
mov ebx, dword [ebp - 0x84]
movsx esi, byte [ecx + eax]
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x98]
movsx eax, word [eax + ebx*2]
add eax, edx
test esi, esi
mov dword [ebp - 0x80], eax
jle 0x9dd535
mov ecx, dword [edi + 0x7d10]
test ecx, ecx
jne 0x9dd4d8
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9dd55d
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dd4e6
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x80]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dd486
mov esi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x98]
mov ecx, dword [esi + 0xc]
movsx esi, byte [ebx + ecx]
add dword [ebp - 0x8c], esi
sub dword [ebp - 0x88], 1
je 0x9dd5af
add dword [ebp - 0x90], 0x10
add dword [ebp - 0x94], 0x10
mov esi, dword [ebp - 0x90]
jmp 0x9dd3ad
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9dd4c8
add dword [ebp - 0x250], 1
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x250]
add eax, dword [ebp - 0x264]
add dword [ebp - 0x44], 0x145c
add eax, dword [ebp - 0x25c]
add eax, dword [ebp - 0x8c]
cmp dword [edi + 0x7ca4], edx
mov dword [ebp - 0x25c], eax
jg 0x9dc75f
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0x130]
mov ebx, dword [ebp - 0x278]
mov esi, dword [ebx + 0xce90]
cmp esi, 7
jg 0x9de3d2
test esi, esi
jle 0x9dd77d
lea ebx, [esi - 1]
mov edx, dword [edi + 0x1308c]
mov ecx, 1
mov eax, ebx
and eax, 3
mov dword [ebp - 0x290], eax
mov eax, edi
call fcn.009d8de0
mov edx, dword [ebp + 8]
xor ecx, ecx
cmp dword [edx + 0x60], 0
sete cl
xor dword [edi + 0x1308c], ecx
test ebx, ebx
je 0x9dd77d
mov ecx, dword [ebp - 0x290]
test ecx, ecx
je 0x9dd6e7
cmp dword [ebp - 0x290], 1
je 0x9dd6b8
cmp dword [ebp - 0x290], 2
je 0x9dd691
mov edx, dword [edi + 0x1308c]
mov ecx, 1
mov eax, edi
xor ebx, ebx
call fcn.009d8de0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x60], 0
sete bl
xor dword [edi + 0x1308c], ebx
lea ebx, [esi - 2]
mov edx, dword [edi + 0x1308c]
mov eax, edi
mov ecx, 1
call fcn.009d8de0
mov esi, dword [ebp + 8]
xor eax, eax
cmp dword [esi + 0x60], 0
sete al
sub ebx, 1
xor dword [edi + 0x1308c], eax
mov edx, dword [edi + 0x1308c]
mov ecx, 1
mov eax, edi
call fcn.009d8de0
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x60]
test esi, esi
sete dl
movzx ecx, dl
xor dword [edi + 0x1308c], ecx
sub ebx, 1
je 0x9dd77d
mov edx, dword [edi + 0x1308c]
mov ecx, 1
mov eax, edi
call fcn.009d8de0
mov esi, dword [ebp + 8]
xor eax, eax
mov ecx, 1
cmp dword [esi + 0x60], 0
sete al
xor dword [edi + 0x1308c], eax
mov eax, edi
mov edx, dword [edi + 0x1308c]
call fcn.009d8de0
mov ecx, dword [ebp + 8]
xor eax, eax
cmp dword [ecx + 0x60], 0
mov ecx, 1
sete al
xor dword [edi + 0x1308c], eax
mov eax, edi
mov edx, dword [edi + 0x1308c]
call fcn.009d8de0
mov esi, dword [ebp + 8]
xor edx, edx
mov ecx, 1
mov eax, edi
cmp dword [esi + 0x60], 0
sete dl
xor dword [edi + 0x1308c], edx
mov edx, dword [edi + 0x1308c]
call fcn.009d8de0
xor ecx, ecx
cmp dword [esi + 0x60], 0
sete cl
xor dword [edi + 0x1308c], ecx
sub ebx, 4
jne 0x9dd6e7
mov ecx, dword [ebp - 0x278]
mov edi, dword [ebp - 0x280]
mov edx, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x270]
shl edi, 3
add edi, dword [ecx + 0xce90]
lea esi, [edi + edx]
mov edi, dword [ebp + 8]
sub eax, esi
mov ebx, eax
sar ebx, 0x1f
shr ebx, 0x1d
add ebx, eax
sar ebx, 3
add dword [ecx + 0xce84], ebx
mov ebx, dword [edi + 0x130]
mov edx, dword [ebx + 0x13084]
mov edi, dword [ebx + 0x13088]
sub edx, 1
cmp edx, 0xffffffff
jne 0x9dd7d8
mov edx, 0xff
lea eax, [edx + edx*2]
shl eax, 4
mov ecx, dword [ebx + eax + 0x10084]
sub ecx, dword [ebx + 0x7d08]
mov dword [ebp - 0x274], ecx
js 0x9dd816
mov eax, edx
sub eax, edi
cmp edx, edi
lea ecx, [eax + 1]
jge 0x9dd804
add ecx, 0x100
mov edx, dword [ebx + 0xdc00]
shl edx, 3
imul edx, ecx
sub dword [ebp - 0x274], edx
mov edx, dword [ebx + 0x7cbc]
test edx, edx
je 0x9de3b0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x118]
mov edi, ecx
shl edi, 4
add edi, edx
mov eax, dword [edi*4 + 0xbfc460]
imul edx, eax, 0x11940
mov edi, dword [ebp + 8]
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x274]
imul edx, eax
mov eax, edx
sar edx, 0x1f
idiv dword [edi + 0xc]
add eax, dword [ebx + 0xcebc]
lea edi, [ecx + eax*8]
test edi, edi
js 0x9dff60
mov ecx, dword [ebp - 0x278]
cmp edi, dword [ecx + 0x13090]
je 0x9dd893
mov dword [esp + 4], 0xbfe078
mov dword [esp], ecx
call fcn.009d3ef0
mov ebx, dword [ebp - 0x278]
mov edi, dword [ebx + 0x13090]
mov edx, dword [ebp - 0x278]
mov ecx, dword [edx + 0xce84]
shl ecx, 3
cmp edi, ecx
mov dword [ebp - 0x27c], ecx
je 0x9dd974
mov ebx, dword [edx + 0xce90]
mov ecx, dword [edx + 0xdc00]
mov edx, esi
mov eax, dword [ebp - 0x270]
sar edx, 0x1f
shr edx, 0x1d
mov dword [esp + 0x20], esi
shl ecx, 3
mov dword [esp + 0x28], eax
lea eax, [esi + edx]
sub esi, ebx
sub esi, ecx
and eax, 7
mov dword [esp + 0x1c], esi
mov esi, dword [ebp - 0x278]
sub eax, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0xce8c]
mov dword [esp + 0xc], edi
mov edi, dword [ebp - 0x27c]
mov dword [esp], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0xbfe0b0
call fcn.009d3ef0
mov esi, dword [ebp - 0x278]
mov dword [esp + 4], 0xbfe1c8
mov dword [esp], esi
call fcn.009d3ef0
mov dword [esp + 4], 0xbfe200
mov dword [esp], esi
call fcn.009d3ef0
mov dword [esp + 4], 0xbfe24c
mov dword [esp], esi
call fcn.009d3ef0
mov dword [esp + 4], 0xbfe26c
mov dword [esp], esi
call fcn.009d3ef0
mov edx, dword [esi + 0xce84]
shl edx, 3
mov dword [esi + 0x13090], edx
mov esi, dword [ebp - 0x278]
mov eax, dword [esi + 0x7d08]
cmp eax, 0x3b9aca00
jle 0x9dda54
mov esi, dword [ebp - 0x278]
mov ecx, 0x90
sub dword [esi + 0x10084], eax
mov edx, esi
sub dword [esi + 0x100b4], eax
mov eax, dword [esi + 0x7d08]
sub dword [esi + 0x100e4], eax
jmp 0x9dda2e
mov edi, dword [ebp - 0x278]
mov esi, dword [edi + 0x7d08]
sub dword [edx + edi + 0x10084], esi
mov ebx, dword [edi + 0x7d08]
sub dword [edi + ecx + 0x100e4], ebx
mov eax, dword [edi + 0x7d08]
sub dword [edi + ecx + 0x10114], eax
mov edx, dword [edi + 0x7d08]
sub dword [edi + ecx + 0x10144], edx
mov esi, dword [edi + 0x7d08]
sub dword [edi + ecx + 0x10174], esi
mov ebx, dword [edi + 0x7d08]
sub dword [edi + ecx + 0x101a4], ebx
mov eax, dword [edi + 0x7d08]
sub dword [edi + ecx + 0x101d4], eax
mov edx, dword [edi + 0x7d08]
sub dword [edi + ecx + 0x10204], edx
add ecx, 0x1b0
mov eax, dword [edi + 0x7d08]
mov edx, edi
sub dword [ecx + edx + 0x10084], eax
lea edx, [ecx + 0x30]
cmp edx, 0x3000
jne 0x9dd9b2
mov edi, dword [ebp - 0x278]
mov dword [edi + 0x7d08], 0
add esp, 0x2bc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x58], 0
mov esi, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x58]
mov ebx, dword [esi + 0x1444]
mov ecx, dword [edx + ebx]
mov ebx, 0x55555556
mov eax, ecx
imul ebx
mov eax, dword [ebp - 0x58]
sar ecx, 0x1f
sub edx, ecx
mov ecx, dword [eax + esi + 0x1448]
test edx, edx
mov dword [ebp - 0x268], edx
mov dword [ebp - 0x154], ecx
jle 0x9ddd4e
mov ebx, dword [ebp - 0x254]
lea edx, [ecx + ecx*2]
mov dword [ebp - 0x284], edx
mov dword [ebp - 0x260], 0
lea ecx, [ebx + ebx*2]
lea esi, [esi + ecx*4 + 0x1200]
mov dword [ebp - 0x5c], esi
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x154]
mov ecx, dword [eax]
test esi, esi
mov dword [ebp - 0x15c], ecx
jle 0x9ddd01
mov esi, dword [ebp - 0x154]
nop
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9ddb52
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9de1e4
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9ddb60
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x15c]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9ddb00
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebx + 4]
mov dword [ebp - 0x158], esi
mov esi, dword [ebp - 0x154]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9ddc03
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dff75
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9ddc11
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x158]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9ddbb1
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x154]
mov ebx, dword [ecx + 8]
mov dword [ebp - 0x150], ebx
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9ddcb4
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dffc7
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9ddcc2
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x150]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9ddc62
add dword [ebp - 0x260], 1
mov ebx, dword [ebp - 0x268]
add dword [ebp - 0x5c], 0xc
cmp dword [ebp - 0x260], ebx
jne 0x9ddae0
mov eax, dword [ebp - 0x254]
mov edx, ebx
sub edx, 1
mov esi, dword [ebp - 0x264]
add esi, dword [ebp - 0x284]
lea ebx, [edx + eax + 1]
imul edx, dword [ebp - 0x284]
mov dword [ebp - 0x254], ebx
add esi, edx
mov dword [ebp - 0x264], esi
add dword [ebp - 0x58], 4
cmp dword [ebp - 0x58], 0x10
jne 0x9dda7c
mov edx, dword [ebp - 0x9c]
mov esi, dword [edi + 0x13100]
mov edx, dword [edx + 0x12a4]
lea ecx, [esi + esi*2]
mov dword [ebp - 0x24], ecx
cmp ecx, edx
mov dword [ebp - 0x74], edx
jle 0x9ddd7e
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x9c]
mov ebx, dword [ecx + 0x12bc]
mov eax, ebx
shl eax, 4
add eax, 0xbfbdc0
test ebx, ebx
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x138], eax
je 0x9de390
mov esi, dword [ebp - 0x24]
test esi, esi
jle 0x9de390
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x14c], 0
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x128], 0
mov esi, dword [edx]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [edx + eax*4 + 0x900]
mov ebx, dword [edx + eax*4 + 0x904]
test ecx, ecx
je 0x9dde1f
fldz
fcomp dword [edx + eax*4]
fnstsw ax
mov dword [ebp - 0x140], 0xffffffff
sahf
seta dl
movzx eax, dl
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x148], 0xf
jle 0x9de2da
cmp ecx, 0xe
jg 0x9de2ee
mov edx, ecx
shl edx, 4
cmp ebx, 0xe
mov dword [ebp - 0x144], 0
jg 0x9de311
mov esi, 0x10
test ebx, ebx
je 0x9dde8c
mov edx, ecx
imul edx, esi
mov esi, dword [ebp - 0x13c]
fldz
mov ecx, dword [ebp - 0x9c]
fcomp dword [ecx + esi*4 + 4]
fnstsw ax
sahf
seta cl
movzx eax, cl
mov ecx, dword [ebp - 0x128]
sub dword [ebp - 0x140], 1
lea esi, [eax + ecx*2]
mov dword [ebp - 0x128], esi
mov ecx, dword [ebp - 0x138]
mov esi, dword [ebp - 0x144]
sub esi, dword [ebp - 0x140]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x12c], esi
lea esi, [ebx + edx]
movsx ebx, byte [eax + esi]
add ebx, dword [ebp - 0x140]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x134], ebx
mov ebx, dword [ebp - 0x134]
movsx edx, word [eax + esi*2]
test ebx, ebx
mov dword [ebp - 0x130], edx
jle 0x9ddf7a
mov esi, dword [ebp - 0x134]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9ddf2d
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9de288
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9ddf3b
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x130]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9ddedb
mov esi, dword [ebp - 0x12c]
test esi, esi
jle 0x9de02d
mov esi, dword [ebp - 0x12c]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9ddfe0
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9de236
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9ddfee
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x128]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9ddf8e
mov ebx, dword [ebp - 0x12c]
add dword [ebp - 0x13c], 2
mov esi, dword [ebp - 0x24]
add ebx, dword [ebp - 0x134]
add dword [ebp - 0x14c], ebx
cmp dword [ebp - 0x13c], esi
jl 0x9dddc7
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax + 0x12a4]
mov dword [ebp - 0x74], edx
mov ebx, dword [ebp - 0x9c]
mov esi, dword [ebx + 0x12c0]
mov dword [ebp - 0x124], esi
mov ecx, dword [ebp - 0x124]
shl esi, 4
add esi, 0xbfbdc0
mov dword [ebp - 0x110], esi
test ecx, ecx
je 0x9de372
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x74], edx
jle 0x9de372
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x114], 0
lea eax, [ecx + edx*4 + 0x900]
mov dword [ebp - 0x60], eax
jmp 0x9de163
mov edx, ecx
imul edx, esi
mov dword [ebp - 0x11c], 0
test ebx, ebx
je 0x9de100
mov edx, ecx
imul edx, esi
mov esi, dword [ebp - 0x60]
fldz
mov ecx, dword [ebp - 0x120]
fcomp dword [esi - 0x8fc]
fnstsw ax
sahf
seta al
sub dword [ebp - 0x118], 1
movzx eax, al
lea esi, [eax + ecx*2]
mov dword [ebp - 0x120], esi
lea edx, [ebx + edx]
mov ebx, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x110]
mov esi, dword [ebp - 0x11c]
sub esi, dword [ebp - 0x118]
mov eax, dword [ebx + 0xc]
movsx ebx, byte [eax + edx]
mov eax, dword [ecx + 8]
add ebx, dword [ebp - 0x118]
movsx edx, word [eax + edx*2]
mov ecx, ebx
mov eax, edi
call fcn.009d8de0
mov edx, dword [ebp - 0x120]
mov ecx, esi
mov eax, edi
add esi, ebx
call fcn.009d8de0
add dword [ebp - 0x24], 2
mov ebx, dword [ebp - 0x24]
add dword [ebp - 0x114], esi
add dword [ebp - 0x60], 8
cmp dword [ebp - 0x74], ebx
jle 0x9de39f
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x120], 0
mov ecx, dword [eax]
mov esi, dword [edx]
mov ebx, dword [eax + 4]
test ecx, ecx
je 0x9de1ac
fldz
fcomp dword [eax - 0x900]
fnstsw ax
mov dword [ebp - 0x118], 0xffffffff
sahf
seta dl
movzx eax, dl
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x124], 0xf
jle 0x9de0be
cmp ecx, 0xe
jg 0x9de353
mov edx, ecx
shl edx, 4
mov dword [ebp - 0x11c], 0
cmp ebx, 0xe
jg 0x9de332
mov esi, 0x10
jmp 0x9de0cd
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9ddb42
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9ddfd0
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9ddf1d
mov edx, ecx
imul edx, esi
mov dword [ebp - 0x144], 0
jmp 0x9dde52
lea edx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0x128], edx
cmp ebx, 0xe
mov edx, 0xf0
mov dword [ebp - 0x144], esi
jle 0x9dde4d
mov ecx, esi
shl dword [ebp - 0x128], cl
add dword [ebp - 0x144], esi
lea ecx, [ebx - 0xf]
mov ebx, 0xf
or dword [ebp - 0x128], ecx
jmp 0x9dde5b
mov ecx, esi
shl dword [ebp - 0x120], cl
add dword [ebp - 0x11c], esi
lea ecx, [ebx - 0xf]
mov ebx, 0xf
or dword [ebp - 0x120], ecx
jmp 0x9de0d6
lea edx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0x120], edx
mov edx, 0xf0
mov dword [ebp - 0x11c], esi
jmp 0x9de1d1
mov dword [ebp - 0x114], 0
mov ecx, dword [ebp - 0x114]
add ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x34], ecx
jmp 0x9dd33a
mov dword [ebp - 0x14c], 0
jmp 0x9de064
mov edx, dword [ebp - 0x9c]
mov esi, dword [edx + 0x12a4]
mov dword [ebp - 0x74], esi
jmp 0x9de37c
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x118]
jmp 0x9dd83b
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x118]
jmp 0x9dc500
mov ecx, 8
mov edx, 0x4c
mov eax, edi
sub esi, 8
call fcn.009d8de0
cmp esi, 7
jle 0x9dd608
mov ecx, 8
mov edx, 0x41
mov eax, edi
sub esi, 8
call fcn.009d8de0
cmp esi, 7
jle 0x9dd608
mov ecx, 8
mov edx, 0x4d
mov eax, edi
sub esi, 8
call fcn.009d8de0
cmp esi, 7
jle 0x9dd608
mov ecx, 8
mov edx, 0x45
mov eax, edi
sub esi, 8
call fcn.009d8de0
cmp esi, 0x1f
jle 0x9dd608
call fcn.009d00a0
xor ebx, ebx
mov dword [ebp - 0x7c], eax
mov edx, dword [ebp - 0x7c]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
cmp eax, ebx
jle 0x9dd608
cmp esi, 7
jle 0x9dd608
mov eax, dword [ebp - 0x7c]
mov ecx, 8
sub esi, 8
movsx edx, byte [ebx + eax]
mov eax, edi
add ebx, 1
call fcn.009d8de0
jmp 0x9de450
mov eax, dword [edi + 0x7ca4]
lea edx, [edi + 0x7d14]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x28c], edx
cmp dword [ebp - 0x10], eax
jge 0x9def38
imul ebx, dword [ebp - 0x10], 0x145c
imul esi, dword [ebp - 0x24c], 0x28b8
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x258], 0
add ebx, esi
add ebx, dword [ebp - 0x28c]
mov edx, dword [ebx + 0x12b0]
mov dword [ebp - 0x17c], ebx
mov ebx, dword [ebx + 0x1304]
mov ecx, dword [edx*4 + 0xbff7b0]
mov eax, dword [edx*4 + 0xbff7f0]
test ebx, ebx
mov dword [ebp - 0x244], ecx
mov dword [ebp - 0x240], eax
jle 0x9de614
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x17c]
mov edx, dword [eax + esi*4 + 0x1200]
mov dword [ebp - 0x248], edx
add edx, 1
je 0x9de601
mov eax, dword [ebp - 0x244]
test eax, eax
jle 0x9de5ef
mov esi, dword [ebp - 0x244]
nop
mov ecx, dword [edi + 0x7d10]
test ecx, ecx
jne 0x9de5a2
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9ded76
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9de5b0
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x248]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9de550
mov esi, dword [ebp - 0x244]
add dword [ebp - 0x258], esi
mov eax, dword [ebp - 0x17c]
add dword [ebp - 0x40], 1
mov esi, dword [ebp - 0x40]
cmp dword [eax + 0x1304], esi
jg 0x9de524
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x40]
cmp edx, dword [ecx + 0x12fc]
jge 0x9de71d
lea ebx, [ecx + edx*4 + 0x1200]
mov dword [ebp - 0x64], ebx
mov eax, dword [ebp - 0x64]
mov edx, dword [eax]
mov dword [ebp - 0x14], edx
add edx, 1
je 0x9de700
mov ecx, dword [ebp - 0x240]
test ecx, ecx
jle 0x9de6f4
mov esi, dword [ebp - 0x240]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9de6aa
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9ded24
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9de6b8
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x14]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9de658
mov esi, dword [ebp - 0x240]
add dword [ebp - 0x258], esi
mov edx, dword [ebp - 0x17c]
add dword [ebp - 0x40], 1
mov ebx, dword [ebp - 0x40]
add dword [ebp - 0x64], 4
cmp dword [edx + 0x12fc], ebx
jg 0x9de633
mov edx, dword [ebp - 0x17c]
cmp dword [edx + 0x12b4], 2
je 0x9df691
mov ebx, dword [edx + 0x12d8]
mov esi, edx
mov eax, dword [edx + 0x12a4]
add ebx, 1
mov dword [ebp - 0x194], eax
mov edx, ebx
add edx, dword [esi + 0x12dc]
mov esi, dword [edi + ebx*4 + 0x13098]
mov ebx, dword [ebp - 0x194]
mov eax, dword [edi + edx*4 + 0x1309c]
mov dword [ebp - 0x20], esi
cmp esi, ebx
jle 0x9de76d
mov dword [ebp - 0x20], ebx
mov esi, dword [ebp - 0x194]
mov dword [ebp - 0x1c], eax
cmp eax, esi
jle 0x9de77d
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ecx + 0x12bc]
mov dword [ebp - 0x1ec], edx
mov ebx, dword [ebp - 0x1ec]
shl edx, 4
add edx, 0xbfbdc0
mov dword [ebp - 0x1dc], edx
test ebx, ebx
je 0x9df682
mov eax, dword [ebp - 0x20]
test eax, eax
jle 0x9df682
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1f0], 0
mov ebx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1cc], 0
mov esi, dword [ebx]
mov ebx, dword [ebp - 0x1e0]
mov ecx, dword [eax + ebx*4 + 0x900]
mov edx, dword [eax + ebx*4 + 0x904]
test ecx, ecx
je 0x9de823
fldz
fcomp dword [eax + ebx*4]
fnstsw ax
mov dword [ebp - 0x1e4], 0xffffffff
sahf
seta bl
movzx eax, bl
mov dword [ebp - 0x1cc], eax
cmp dword [ebp - 0x1ec], 0xf
jle 0x9def10
cmp ecx, 0xe
jg 0x9defb9
mov ebx, ecx
shl ebx, 4
mov dword [ebp - 0x1e8], 0
cmp edx, 0xe
jg 0x9def98
mov esi, 0x10
test edx, edx
je 0x9de890
mov ebx, ecx
imul ebx, esi
mov esi, dword [ebp - 0x1e0]
fldz
mov ecx, dword [ebp - 0x17c]
fcomp dword [ecx + esi*4 + 4]
fnstsw ax
sahf
seta cl
movzx eax, cl
mov ecx, dword [ebp - 0x1cc]
sub dword [ebp - 0x1e4], 1
lea esi, [eax + ecx*2]
mov dword [ebp - 0x1cc], esi
mov ecx, dword [ebp - 0x1dc]
add edx, ebx
mov eax, dword [ebp - 0x1e8]
sub eax, dword [ebp - 0x1e4]
mov ebx, dword [ecx + 0xc]
mov dword [ebp - 0x1d0], eax
mov eax, dword [ecx + 8]
movsx esi, byte [ebx + edx]
add esi, dword [ebp - 0x1e4]
movsx ebx, word [eax + edx*2]
mov dword [ebp - 0x1d8], esi
mov edx, dword [ebp - 0x1d8]
mov dword [ebp - 0x1d4], ebx
test edx, edx
jle 0x9de97d
mov esi, dword [ebp - 0x1d8]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9de930
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9dee6c
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9de93e
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x1d4]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9de8de
mov esi, dword [ebp - 0x1d0]
test esi, esi
jle 0x9dea30
mov esi, dword [ebp - 0x1d0]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9de9e3
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9deebe
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9de9f1
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x1cc]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9de991
add dword [ebp - 0x1e0], 2
mov ebx, dword [ebp - 0x1d0]
mov esi, dword [ebp - 0x1e0]
add ebx, dword [ebp - 0x1d8]
add dword [ebp - 0x1f0], ebx
cmp dword [ebp - 0x20], esi
jg 0x9de7cb
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ecx + 0x12c0]
mov eax, edx
shl eax, 4
add eax, 0xbfbdc0
test edx, edx
mov dword [ebp - 0x1c8], edx
mov dword [ebp - 0x1b8], eax
je 0x9defd8
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x1c], eax
jle 0x9defd8
mov ebx, dword [ebp - 0x17c]
mov dword [ebp - 0x1bc], 0
lea esi, [ebx + eax*4 + 0x900]
mov dword [ebp - 0x68], esi
mov ebx, esi
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x1b8]
mov dword [ebp - 0x1c0], 0
mov dword [ebp - 0x1a8], 0
test ecx, ecx
mov esi, dword [edx]
mov edx, dword [ebx + 4]
je 0x9deaf0
fldz
fcomp dword [ebx - 0x900]
fnstsw ax
mov dword [ebp - 0x1c0], 0xffffffff
sahf
seta bl
movzx eax, bl
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1c8], 0xf
jle 0x9def24
cmp ecx, 0xe
jg 0x9def79
mov ebx, ecx
shl ebx, 4
mov dword [ebp - 0x1c4], 0
cmp edx, 0xe
jg 0x9def58
mov esi, 0x10
test edx, edx
je 0x9deb56
mov ebx, ecx
imul ebx, esi
mov esi, dword [ebp - 0x68]
fldz
fcomp dword [esi - 0x8fc]
fnstsw ax
sahf
seta cl
movzx eax, cl
mov ecx, dword [ebp - 0x1a8]
sub dword [ebp - 0x1c0], 1
lea esi, [eax + ecx*2]
mov dword [ebp - 0x1a8], esi
mov ecx, dword [ebp - 0x1b8]
add edx, ebx
mov eax, dword [ebp - 0x1c4]
sub eax, dword [ebp - 0x1c0]
mov ebx, dword [ecx + 0xc]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ecx + 8]
movsx esi, byte [ebx + edx]
add esi, dword [ebp - 0x1c0]
movsx ebx, word [eax + edx*2]
mov dword [ebp - 0x1b4], esi
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1b0], ebx
test edx, edx
jle 0x9dec43
mov esi, dword [ebp - 0x1b4]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9debf6
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9dedc8
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dec04
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x1b0]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9deba4
mov esi, dword [ebp - 0x1ac]
test esi, esi
jle 0x9decf6
mov esi, dword [ebp - 0x1ac]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9deca9
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dee1a
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9decb7
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x1a8]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dec57
add dword [ebp - 0x20], 2
mov ebx, dword [ebp - 0x1ac]
mov esi, dword [ebp - 0x20]
add ebx, dword [ebp - 0x1b4]
add dword [ebp - 0x68], 8
add dword [ebp - 0x1bc], ebx
cmp dword [ebp - 0x1c], esi
jle 0x9defe2
mov ebx, dword [ebp - 0x68]
jmp 0x9deaaa
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9de69a
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9de592
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9debe6
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9dec99
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9de920
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9de9d3
mov ebx, ecx
imul ebx, esi
mov dword [ebp - 0x1e8], 0
jmp 0x9de856
mov ebx, ecx
imul ebx, esi
mov dword [ebp - 0x1c4], 0
jmp 0x9deb23
add dword [ebp - 0x24c], 1
cmp dword [ebp - 0x24c], 1
jg 0x9dfe9a
mov dword [ebp - 0x10], 0
jmp 0x9de4b4
mov ecx, esi
shl dword [ebp - 0x1a8], cl
add dword [ebp - 0x1c4], esi
lea ecx, [edx - 0xf]
mov edx, 0xf
or dword [ebp - 0x1a8], ecx
jmp 0x9deb2c
lea ebx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0x1a8], ebx
mov ebx, 0xf0
mov dword [ebp - 0x1c4], esi
jmp 0x9deb15
mov ecx, esi
shl dword [ebp - 0x1cc], cl
add dword [ebp - 0x1e8], esi
lea ecx, [edx - 0xf]
mov edx, 0xf
or dword [ebp - 0x1cc], ecx
jmp 0x9de85f
lea ebx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0x1cc], ebx
mov ebx, 0xf0
mov dword [ebp - 0x1e8], esi
jmp 0x9de848
mov dword [ebp - 0x1bc], 0
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ecx + 0x12c4]
mov eax, edx
shl eax, 4
add eax, 0xbfbdc0
test edx, edx
mov dword [ebp - 0x1a4], edx
mov dword [ebp - 0x190], eax
je 0x9df3af
mov esi, dword [ebp - 0x194]
cmp dword [ebp - 0x1c], esi
jge 0x9df3af
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x198], 0
lea edx, [eax + ebx*4 + 0x900]
mov dword [ebp - 0x6c], edx
mov ebx, edx
mov ecx, dword [ebp - 0x190]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x180], 0
mov esi, dword [ecx]
mov ecx, dword [ebx]
test ecx, ecx
je 0x9df080
fldz
fcomp dword [ebx - 0x900]
fnstsw ax
mov dword [ebp - 0x19c], 0xffffffff
sahf
seta al
movzx ebx, al
mov dword [ebp - 0x180], ebx
cmp dword [ebp - 0x1a4], 0xf
jle 0x9df35b
cmp ecx, 0xe
jg 0x9df390
mov ebx, ecx
shl ebx, 4
mov dword [ebp - 0x1a0], 0
cmp edx, 0xe
jg 0x9df36f
mov esi, 0x10
test edx, edx
je 0x9df0e6
mov ebx, ecx
imul ebx, esi
mov esi, dword [ebp - 0x6c]
fldz
fcomp dword [esi - 0x8fc]
fnstsw ax
sahf
seta cl
movzx eax, cl
mov ecx, dword [ebp - 0x180]
sub dword [ebp - 0x19c], 1
lea esi, [eax + ecx*2]
mov dword [ebp - 0x180], esi
mov ecx, dword [ebp - 0x190]
add edx, ebx
mov eax, dword [ebp - 0x1a0]
sub eax, dword [ebp - 0x19c]
mov ebx, dword [ecx + 0xc]
mov dword [ebp - 0x184], eax
mov eax, dword [ecx + 8]
movsx esi, byte [ebx + edx]
add esi, dword [ebp - 0x19c]
movsx ebx, word [eax + edx*2]
mov dword [ebp - 0x18c], esi
mov edx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], ebx
test edx, edx
jle 0x9df1d3
mov esi, dword [ebp - 0x18c]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9df186
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9df2b7
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9df194
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x188]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9df134
mov esi, dword [ebp - 0x184]
test esi, esi
jle 0x9df286
mov esi, dword [ebp - 0x184]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9df239
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9df309
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9df247
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x180]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9df1e7
add dword [ebp - 0x1c], 2
mov ebx, dword [ebp - 0x184]
mov esi, dword [ebp - 0x1c]
add ebx, dword [ebp - 0x18c]
add dword [ebp - 0x6c], 8
add dword [ebp - 0x198], ebx
cmp dword [ebp - 0x194], esi
jle 0x9df3b9
mov ebx, dword [ebp - 0x6c]
jmp 0x9df03a
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9df176
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9df229
mov ebx, ecx
imul ebx, esi
mov dword [ebp - 0x1a0], 0
jmp 0x9df0b3
mov ecx, esi
shl dword [ebp - 0x180], cl
add dword [ebp - 0x1a0], esi
lea ecx, [edx - 0xf]
mov edx, 0xf
or dword [ebp - 0x180], ecx
jmp 0x9df0bc
lea ebx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0x180], ebx
mov ebx, 0xf0
mov dword [ebp - 0x1a0], esi
jmp 0x9df0a5
mov dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x1f0]
add ecx, dword [ebp - 0x258]
add ecx, dword [ebp - 0x1bc]
mov edx, dword [eax + 0x12a4]
add ecx, dword [ebp - 0x198]
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x17c]
mov dword [ebp - 0x16c], 0
mov ebx, dword [edx + 0x12a8]
sub ebx, dword [ebp - 0x78]
mov ecx, dword [edx + 0x12e8]
mov esi, ebx
sar esi, 0x1f
shr esi, 0x1e
add esi, ebx
sar esi, 2
test esi, esi
mov dword [ebp - 0x168], esi
jle 0x9df65e
mov esi, dword [ebp - 0x78]
shl ecx, 4
mov ebx, dword [ebp - 0x17c]
add ecx, 0xbfbfc0
mov dword [ebp - 0x164], ecx
mov ecx, dword [ecx + 0xc]
shl esi, 2
lea edx, [ebx + esi + 0x900]
add esi, dword [ebp - 0x17c]
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x174], esi
mov esi, edx
mov eax, dword [esi]
xor edx, edx
mov dword [ebp - 0x178], 0
test eax, eax
je 0x9df484
mov edx, dword [ebp - 0x174]
fldz
mov dword [ebp - 0x178], 8
fcomp dword [edx]
fnstsw ax
xor edx, edx
sahf
seta dl
mov ebx, dword [ebp - 0x170]
mov esi, dword [ebx + 4]
test esi, esi
je 0x9df4af
mov esi, dword [ebp - 0x174]
fldz
add dword [ebp - 0x178], 4
fcomp dword [esi + 4]
fnstsw ax
sahf
seta bl
movzx eax, bl
lea edx, [eax + edx*2]
mov eax, dword [ebp - 0x170]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x9df4da
mov esi, dword [ebp - 0x174]
fldz
add dword [ebp - 0x178], 2
fcomp dword [esi + 8]
fnstsw ax
sahf
seta bl
movzx esi, bl
lea edx, [esi + edx*2]
mov eax, dword [ebp - 0x170]
mov ebx, dword [eax + 0xc]
test ebx, ebx
je 0x9df505
mov esi, dword [ebp - 0x174]
fldz
add dword [ebp - 0x178], 1
fcomp dword [esi + 0xc]
fnstsw ax
sahf
seta bl
movzx esi, bl
lea edx, [esi + edx*2]
mov eax, dword [ebp - 0x178]
mov ebx, dword [ebp - 0x164]
movsx esi, byte [ecx + eax]
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x178]
movsx eax, word [eax + ebx*2]
add eax, edx
test esi, esi
mov dword [ebp - 0x160], eax
jle 0x9df5e4
mov ecx, dword [edi + 0x7d10]
test ecx, ecx
jne 0x9df584
mov eax, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [eax + eax*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov ebx, dword [edi + edx + 0x10084]
cmp ebx, dword [edi + 0x7d08]
je 0x9df60c
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9df592
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x160]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9df532
mov esi, dword [ebp - 0x164]
mov ebx, dword [ebp - 0x178]
mov ecx, dword [esi + 0xc]
movsx esi, byte [ecx + ebx]
add dword [ebp - 0x16c], esi
sub dword [ebp - 0x168], 1
je 0x9df65e
add dword [ebp - 0x170], 0x10
add dword [ebp - 0x174], 0x10
mov esi, dword [ebp - 0x170]
jmp 0x9df456
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9df574
mov edx, dword [ebp - 0x38]
add dword [ebp - 0x10], 1
mov eax, dword [edi + 0x7ca4]
add edx, dword [ebp - 0x25c]
add edx, dword [ebp - 0x16c]
mov dword [ebp - 0x25c], edx
jmp 0x9de4b4
mov dword [ebp - 0x1f0], 0
jmp 0x9dea58
mov esi, dword [edi + 0x13100]
mov ecx, dword [edx + 0x12a4]
lea eax, [esi + esi*2]
cmp eax, ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x18], eax
jle 0x9df6ad
mov dword [ebp - 0x18], ecx
mov ebx, dword [ebp - 0x17c]
mov ecx, dword [ebx + 0x12bc]
mov edx, ecx
shl edx, 4
add edx, 0xbfbdc0
test ecx, ecx
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x228], edx
je 0x9dfe8b
mov eax, dword [ebp - 0x18]
test eax, eax
jle 0x9dfe8b
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x23c], 0
mov eax, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x17c]
mov esi, dword [ebp - 0x228]
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x218], 0
mov ecx, dword [edx + eax*4 + 0x900]
mov ebx, dword [esi]
mov esi, dword [edx + eax*4 + 0x904]
test ecx, ecx
je 0x9df74f
fldz
fcomp dword [edx + eax*4]
fnstsw ax
mov dword [ebp - 0x230], 0xffffffff
sahf
seta al
movzx edx, al
mov dword [ebp - 0x218], edx
cmp dword [ebp - 0x238], 0xf
jle 0x9dfdd0
cmp ecx, 0xe
jg 0x9dfe5d
mov edx, ecx
shl edx, 4
mov dword [ebp - 0x234], 0
cmp esi, 0xe
jg 0x9dfe3c
mov ebx, 0x10
test esi, esi
je 0x9df7bc
mov edx, ecx
imul edx, ebx
mov ebx, dword [ebp - 0x22c]
fldz
mov ecx, dword [ebp - 0x17c]
fcomp dword [ecx + ebx*4 + 4]
fnstsw ax
mov ecx, dword [ebp - 0x218]
sahf
seta bl
sub dword [ebp - 0x230], 1
movzx eax, bl
lea ebx, [eax + ecx*2]
mov dword [ebp - 0x218], ebx
mov ecx, dword [ebp - 0x228]
mov ebx, dword [ebp - 0x234]
sub ebx, dword [ebp - 0x230]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x21c], ebx
lea ebx, [esi + edx]
movsx esi, byte [eax + ebx]
add esi, dword [ebp - 0x230]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x224], esi
mov esi, dword [ebp - 0x224]
movsx edx, word [eax + ebx*2]
test esi, esi
mov dword [ebp - 0x220], edx
jle 0x9df8aa
mov esi, dword [ebp - 0x224]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9df85d
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dfd7e
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9df86b
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x220]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9df80b
mov esi, dword [ebp - 0x21c]
test esi, esi
jle 0x9df95d
mov esi, dword [ebp - 0x21c]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9df910
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dfd2c
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9df91e
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x218]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9df8be
mov ebx, dword [ebp - 0x21c]
add dword [ebp - 0x22c], 2
mov esi, dword [ebp - 0x18]
add ebx, dword [ebp - 0x224]
add dword [ebp - 0x23c], ebx
cmp dword [ebp - 0x22c], esi
jl 0x9df6f7
mov eax, dword [ebp - 0x17c]
mov edx, dword [eax + 0x12a4]
mov dword [ebp - 0x78], edx
mov ebx, dword [ebp - 0x17c]
mov esi, dword [ebx + 0x12c0]
mov dword [ebp - 0x214], esi
mov ecx, dword [ebp - 0x214]
shl esi, 4
add esi, 0xbfbdc0
mov dword [ebp - 0x204], esi
test ecx, ecx
je 0x9dfe7c
mov edx, dword [ebp - 0x18]
cmp dword [ebp - 0x78], edx
jle 0x9dfe7c
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x208], 0
lea eax, [ecx + edx*4 + 0x900]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x204]
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x1f4], 0
mov ecx, dword [eax]
mov ebx, dword [edx]
mov esi, dword [eax + 4]
test ecx, ecx
je 0x9dfa32
fldz
fcomp dword [eax - 0x900]
fnstsw ax
mov dword [ebp - 0x20c], 0xffffffff
sahf
seta dl
movzx eax, dl
mov dword [ebp - 0x1f4], eax
cmp dword [ebp - 0x214], 0xf
jle 0x9dfde4
cmp ecx, 0xe
jg 0x9dfdf8
mov edx, ecx
shl edx, 4
cmp esi, 0xe
mov dword [ebp - 0x210], 0
jg 0x9dfe1b
mov ebx, 0x10
test esi, esi
je 0x9dfa98
mov edx, ecx
imul edx, ebx
mov ecx, dword [ebp - 0x70]
fldz
fcomp dword [ecx - 0x8fc]
fnstsw ax
mov ecx, dword [ebp - 0x1f4]
sahf
seta bl
sub dword [ebp - 0x20c], 1
movzx eax, bl
lea ebx, [eax + ecx*2]
mov dword [ebp - 0x1f4], ebx
mov ecx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x210]
sub ebx, dword [ebp - 0x20c]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x1f8], ebx
lea ebx, [esi + edx]
movsx esi, byte [eax + ebx]
add esi, dword [ebp - 0x20c]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x200], esi
mov esi, dword [ebp - 0x200]
movsx edx, word [eax + ebx*2]
test esi, esi
mov dword [ebp - 0x1fc], edx
jle 0x9dfb86
mov esi, dword [ebp - 0x200]
mov edx, dword [edi + 0x7d10]
test edx, edx
jne 0x9dfb39
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dfcda
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dfb47
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x1fc]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dfae7
mov esi, dword [ebp - 0x1f8]
test esi, esi
jle 0x9dfc39
mov esi, dword [ebp - 0x1f8]
mov ebx, dword [edi + 0x7d10]
test ebx, ebx
jne 0x9dfbec
mov ebx, dword [edi + 0x13088]
mov ecx, dword [edi + 0x7d0c]
mov dword [edi + 0x7d10], 8
lea edx, [ebx + ebx*2]
add ecx, 1
shl edx, 4
mov dword [edi + 0x7d0c], ecx
mov eax, dword [edi + edx + 0x10084]
cmp eax, dword [edi + 0x7d08]
je 0x9dfc88
mov edx, dword [edi + 0x7d00]
mov ecx, dword [edi + 0x7d0c]
mov byte [edx + ecx], 0
mov eax, dword [edi + 0x7d10]
mov ebx, esi
cmp esi, eax
jle 0x9dfbfa
mov ebx, eax
sub eax, ebx
sub esi, ebx
mov edx, dword [edi + 0x7d0c]
mov dword [ebp - 0x294], eax
mov ecx, esi
mov dword [edi + 0x7d10], eax
mov eax, dword [ebp - 0x1f4]
add edx, dword [edi + 0x7d00]
sar eax, cl
movzx ecx, byte [ebp - 0x294]
shl eax, cl
or byte [edx], al
add dword [edi + 0x7d08], ebx
test esi, esi
jg 0x9dfb9a
add dword [ebp - 0x18], 2
mov ebx, dword [ebp - 0x1f8]
mov esi, dword [ebp - 0x18]
add ebx, dword [ebp - 0x200]
add dword [ebp - 0x70], 8
add dword [ebp - 0x208], ebx
cmp dword [ebp - 0x78], esi
jg 0x9df9e9
mov eax, dword [ebp - 0x17c]
mov edx, dword [eax + 0x12a4]
mov dword [ebp - 0x78], edx
mov ecx, dword [ebp - 0x23c]
add ecx, dword [ebp - 0x258]
add ecx, dword [ebp - 0x208]
mov dword [ebp - 0x38], ecx
jmp 0x9df3e3
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9dfbdc
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9dfb29
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9df900
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9df84d
mov edx, ecx
imul edx, ebx
mov dword [ebp - 0x234], 0
jmp 0x9df782
mov edx, ecx
imul edx, ebx
mov dword [ebp - 0x210], 0
jmp 0x9dfa65
lea edx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0x1f4], edx
cmp esi, 0xe
mov edx, 0xf0
mov dword [ebp - 0x210], ebx
jle 0x9dfa60
mov ecx, ebx
shl dword [ebp - 0x1f4], cl
add dword [ebp - 0x210], ebx
lea ecx, [esi - 0xf]
mov esi, 0xf
or dword [ebp - 0x1f4], ecx
jmp 0x9dfa6e
mov ecx, ebx
shl dword [ebp - 0x218], cl
add dword [ebp - 0x234], ebx
lea ecx, [esi - 0xf]
mov esi, 0xf
or dword [ebp - 0x218], ecx
jmp 0x9df78b
lea edx, [ecx + ecx - 0x1e]
mov ecx, 0xf
or dword [ebp - 0x218], edx
mov edx, 0xf0
mov dword [ebp - 0x234], ebx
jmp 0x9df774
mov dword [ebp - 0x208], 0
jmp 0x9dfc6e
mov dword [ebp - 0x23c], 0
jmp 0x9df994
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x130]
jmp 0x9dd5f3
mov ecx, 8
mov edx, 0x4c
mov eax, ebx
sub esi, 8
call fcn.009d8de0
cmp esi, 7
jle 0x9dc53b
mov ecx, 8
mov edx, 0x41
mov eax, ebx
sub esi, 8
call fcn.009d8de0
cmp esi, 7
jle 0x9dc53b
mov ecx, 8
mov edx, 0x4d
mov eax, ebx
sub esi, 8
call fcn.009d8de0
cmp esi, 7
jle 0x9dc53b
mov ecx, 8
mov edx, 0x45
mov eax, ebx
sub esi, 8
call fcn.009d8de0
cmp esi, 0x1f
jle 0x9dc53b
call fcn.009d00a0
xor ebx, ebx
mov edi, eax
mov dword [esp], edi
call sub.msvcrt.dll_strlen
cmp eax, ebx
jle 0x9dc53b
cmp esi, 7
jle 0x9dc53b
movsx edx, byte [ebx + edi]
mov ecx, 8
sub esi, 8
mov eax, dword [ebp - 0x278]
add ebx, 1
call fcn.009d8de0
jmp 0x9dff25
mov dword [esp + 4], 0xbfe020
mov dword [esp], ebx
call fcn.009d3ef0
jmp 0x9dd869
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [edi + 0xdc00]
mov ecx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], edx
shl edx, 3
add dword [edi + 0x7d08], edx
add ecx, 1
and ecx, 0xff
mov dword [edi + 0x13088], ecx
jmp 0x9ddbf3
mov eax, dword [edi + 0xdc00]
lea ebx, [edi + edx + 0x1008c]
add ecx, dword [edi + 0x7d00]
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0xdc00]
mov edx, dword [edi + 0x13088]
add dword [edi + 0x7d0c], ecx
shl ecx, 3
add dword [edi + 0x7d08], ecx
add edx, 1
and edx, 0xff
mov dword [edi + 0x13088], edx
jmp 0x9ddca4