Function at 0x495160
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x30
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x10], edx
mov ax, word [ebp + 0x93ab80]
cmp ax, 0xffff
je 0x496099
cmp word [ebp + 0x93ab82], 0xffff
je 0x496099
mov ebx, dword [esp + 0x6c]
xor eax, eax
mov dword [esp + 0x34], eax
mov edi, ebx
mov dword [esp + 0x38], eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x34]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor edx, edx
and ecx, 3
mov dword [esp + 0x28], edx
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x9001e8]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x44]
cmp di, 0x7530
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], edx
jae 0x4955a9
movsx eax, word [ebp + 0x93ab80]
cmp ecx, eax
jl 0x495216
add eax, 0x28
cmp ecx, eax
jge 0x495216
movsx eax, word [ebp + 0x93ab82]
cmp esi, eax
jl 0x495216
add eax, 0x23
cmp esi, eax
jl 0x4955a9
mov esi, edi
and esi, 0xffff
mov dword [esp + 0x1c], esi
mov eax, dword [ebp + esi*4 + 0x9001f4]
cmp eax, edx
jle 0x49533e
movsx ecx, word [ebp + 0x93ab80]
sub eax, ecx
mov ecx, dword [ebp + esi*4 + 0x91d6b4]
mov edx, eax
movsx eax, word [ebp + 0x93ab82]
sub ecx, eax
test edx, edx
jl 0x495324
cmp edx, 0x28
jge 0x495324
test ecx, ecx
jl 0x495324
cmp ecx, 0x23
jge 0x495324
lea eax, [edx*8]
sub eax, edx
lea ecx, [ecx + eax*4]
add eax, ecx
mov edx, eax
shl edx, 4
add edx, eax
cmp word [ebp + edx*8 + 0xb2a], di
lea esi, [ebp + edx*8]
jne 0x495410
xor edx, edx
lea ecx, [esi + 0xb62]
xor eax, eax
mov word [esi + 0xb2c], dx
mov dword [ecx], eax
mov edi, ebx
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebx
mov ebx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi + 0xb08]
mov ecx, dword [ebp + 0x8fea74]
mov ecx, dword [ecx + eax*4 + 0x6eaa8]
cmp ecx, edx
je 0x4952fa
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0xb08]
mov ecx, dword [ebp + 0x8fea74]
xor edx, edx
mov dword [ecx + eax*4 + 0x6eaa8], edx
mov dword [esi + 0xb08], edx
mov dword [esi + 0xb10], edx
mov eax, dword [esp + 0x1c]
pop edi
pop esi
mov dword [ebp + eax*4 + 0x9001f4], edx
mov dword [ebp + eax*4 + 0x91d6b4], edx
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x44
xor eax, eax
pop edi
mov dword [ebp + esi*4 + 0x9001f4], eax
mov dword [ebp + esi*4 + 0x91d6b4], eax
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x44
jge 0x495410
cdq
mov ecx, eax
movsx eax, word [ebp + 0x93ab80]
xor ecx, edx
sub ecx, edx
sub ecx, eax
mov eax, dword [ebp + esi*4 + 0x91d6b4]
cdq
xor eax, edx
sub eax, edx
movsx edx, word [ebp + 0x93ab82]
sub eax, edx
xor edx, edx
cmp ecx, edx
jl 0x4953f6
cmp ecx, 0x28
jge 0x4953f6
cmp eax, edx
jl 0x4953f6
cmp eax, 0x23
jge 0x4953f6
lea esi, [ecx*8]
sub esi, ecx
lea eax, [eax + esi*4]
add eax, esi
mov ecx, eax
shl ecx, 4
add ecx, eax
lea esi, [ebp + ecx*8]
mov cl, byte [ebp + ecx*8 + 0xb58]
cmp cl, 0xff
jne 0x495410
add eax, 0x15
mov ecx, eax
shl ecx, 4
add ecx, eax
mov ax, word [esp + 0x10]
cmp word [ebp + ecx*8], ax
jne 0x495410
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
mov byte [esi + 0xb58], dl
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebx
mov ebx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esi + 0xb24]
mov eax, dword [ebp + 0x8fea74]
mov ecx, dword [eax + ecx*4 + 0x6eaa8]
jmp 0x49557f
mov dword [ebp + esi*4 + 0x9001f4], edx
mov dword [ebp + esi*4 + 0x91d6b4], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x44
lea edx, [ebp + 0xb58]
mov eax, 0x15
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x74], eax
mov esi, dword [esp + 0x70]
xor ecx, ecx
cmp word [esi - 0x2e], dx
je 0x495486
cmp byte [esi], 0xff
jne 0x495458
add eax, ecx
mov edx, eax
shl edx, 4
add edx, eax
mov eax, edx
mov edx, dword [esp + 0x10]
cmp word [ebp + eax*8], dx
je 0x49552e
mov eax, dword [esp + 0x74]
inc ecx
add esi, 0x88
cmp ecx, 0x23
jl 0x49542f
mov ecx, dword [esp + 0x70]
add eax, 0x23
inc edi
add ecx, 0x1298
cmp eax, 0x58d
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
jl 0x495429
jmp 0x49607d
lea eax, [edi*8]
sub eax, edi
mov edi, ebx
lea ecx, [ecx + eax*4]
add eax, ecx
mov edx, eax
shl edx, 4
add edx, eax
xor eax, eax
lea esi, [ebp + edx*8]
xor edx, edx
lea ecx, [esi + 0xb62]
mov word [esi + 0xb2c], dx
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebx
mov ebx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi + 0xb08]
mov ecx, dword [ebp + 0x8fea74]
mov ecx, dword [ecx + eax*4 + 0x6eaa8]
cmp ecx, edx
je 0x495504
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0xb08]
mov ecx, dword [ebp + 0x8fea74]
xor edx, edx
mov dword [ecx + eax*4 + 0x6eaa8], edx
mov eax, dword [esp + 0x1c]
mov dword [esi + 0xb08], edx
pop edi
mov dword [ebp + eax*4 + 0x9001f4], edx
mov dword [ebp + eax*4 + 0x91d6b4], edx
mov dword [esi + 0xb10], edx
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x44
lea eax, [edi*8]
sub eax, edi
mov edi, ebx
lea edx, [ecx + eax*4]
add eax, edx
mov ecx, eax
shl ecx, 4
add ecx, eax
xor eax, eax
lea esi, [ebp + ecx*8]
or ecx, 0xffffffff
mov byte [esi + 0xb58], 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
xor edx, edx
rep stosb byte es:[edi], al
mov eax, dword [esi + 0xb24]
mov ecx, dword [ebp + 0x8fea74]
mov ecx, dword [ecx + eax*4 + 0x6eaa8]
cmp ecx, edx
je 0x49559e
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0xb24]
mov ecx, dword [ebp + 0x8fea74]
xor edx, edx
mov dword [ecx + eax*4 + 0x6eaa8], edx
mov dword [esi + 0xb24], edx
jmp 0x495306
cmp di, 0x7530
mov dword [esp + 0x18], edx
jae 0x495b14
cmp word [esp + 0x70], 0x64
je 0x495b26
xor eax, eax
mov edi, ebx
mov dword [esp + 0x34], eax
or ecx, 0xffffffff
mov dword [esp + 0x38], eax
lea edx, [esp + 0x34]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x3c], eax
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
movsx ebx, word [ebp + 0x93ab80]
mov ecx, eax
mov eax, dword [esp + 0x44]
and ecx, 3
sub eax, ebx
rep movsb byte es:[edi], byte [esi]
movsx ecx, word [ebp + 0x93ab82]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov esi, edi
sub eax, ecx
and esi, 0xffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x6c], ecx
mov eax, dword [ebp + esi*4 + 0x9001f4]
test eax, eax
jle 0x495712
mov edx, dword [ebp + esi*4 + 0x91d6b4]
sub eax, ebx
sub edx, ecx
xor ecx, ecx
cmp eax, ecx
jl 0x4956f8
cmp eax, 0x28
jge 0x4956f8
cmp edx, ecx
jl 0x4956f8
cmp edx, 0x23
jge 0x4956f8
lea ecx, [eax*8]
sub ecx, eax
lea edx, [edx + ecx*4]
add ecx, edx
mov eax, ecx
shl eax, 4
add eax, ecx
cmp word [ebp + eax*8 + 0xb2a], di
lea eax, [ebp + eax*8]
jne 0x4957e3
mov ecx, dword [eax + 0xb08]
mov edx, dword [eax + 0xb10]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xb18]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0xb1c]
xor ecx, ecx
mov word [eax + 0xb2a], cx
mov dword [eax + 0xb08], ecx
mov word [eax + 0xb2c], cx
add eax, 0xb62
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x44]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x48]
mov dword [ebp + esi*4 + 0x9001f4], edx
mov edx, dword [esp + 0x1c]
mov dword [ebp + esi*4 + 0x91d6b4], eax
mov esi, dword [esp + 0x14]
jmp 0x496480
mov dword [ebp + esi*4 + 0x9001f4], ecx
mov dword [ebp + esi*4 + 0x91d6b4], ecx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x44
jge 0x4957e3
cdq
mov ecx, eax
mov eax, dword [ebp + esi*4 + 0x91d6b4]
xor ecx, edx
mov edi, dword [esp + 0x6c]
sub ecx, edx
cdq
xor eax, edx
sub ecx, ebx
sub eax, edx
sub eax, edi
xor edi, edi
cmp ecx, edi
jl 0x4957c9
cmp ecx, 0x28
jge 0x4957c9
cmp eax, edi
jl 0x4957c9
cmp eax, 0x23
jge 0x4957c9
lea edx, [ecx*8]
sub edx, ecx
lea ecx, [eax + edx*4]
add ecx, edx
mov edx, ecx
shl edx, 4
add edx, ecx
lea eax, [ebp + edx*8]
mov dl, byte [ebp + edx*8 + 0xb58]
cmp dl, 0xff
jne 0x4957e3
add ecx, 0x15
mov edx, ecx
shl edx, 4
add edx, ecx
lea ecx, [ebp + edx*8]
mov dx, word [esp + 0x10]
cmp word [ecx], dx
jne 0x4957e3
mov edx, dword [eax + 0xb24]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0xb10]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0xb18]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0xb1c]
mov word [ecx], di
mov dword [eax + 0xb24], edi
mov dword [esp + 0x28], edx
mov word [eax + 0xb3c], di
jmp 0x495aed
mov dword [ebp + esi*4 + 0x9001f4], edi
mov dword [ebp + esi*4 + 0x91d6b4], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x44
mov edx, dword [esp + 0x44]
lea eax, [edx - 7]
lea ecx, [edx + 7]
cmp eax, ecx
jg 0x495891
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x48]
lea ecx, [edx - 7]
add edx, 7
cmp ecx, edx
jg 0x49587d
cmp eax, ebx
jl 0x49587d
lea edx, [ebx + 0x28]
cmp eax, edx
jge 0x49587d
cmp ecx, edi
jl 0x49587d
lea edx, [edi + 0x23]
cmp ecx, edx
jge 0x49587d
mov edx, eax
sub edx, ebx
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
mov edi, dword [esp + 0x6c]
sub edx, edi
add edx, ecx
mov edi, edx
mov dword [esp + 0x30], edx
shl edi, 4
add edi, edx
mov dx, word [esp + 0x10]
cmp word [ebp + edi*8 + 0xb2a], dx
je 0x4958b0
mov edx, dword [esp + 0x30]
add edx, 0x15
mov edi, edx
shl edi, 4
add edi, edx
mov dx, word [esp + 0x10]
cmp word [ebp + edi*8], dx
je 0x4959f1
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
inc ecx
add edx, 7
cmp ecx, edx
jle 0x495807
mov ecx, dword [esp + 0x44]
inc eax
add ecx, 7
cmp eax, ecx
jle 0x4957f9
mov edx, dword [esp + 0x44]
mov dword [ebp + esi*4 + 0x9001f4], edx
mov edx, dword [esp + 0x48]
mov dword [ebp + esi*4 + 0x91d6b4], edx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
jmp 0x496480
mov edx, eax
sub edx, ebx
mov ebx, dword [esp + 0x6c]
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
sub edx, ebx
xor ebx, ebx
add edx, ecx
mov edi, edx
shl edi, 4
add edi, edx
lea edx, [ebp + edi*8]
mov edi, dword [ebp + edi*8 + 0xb08]
mov dword [esp + 0x18], edi
mov edi, dword [edx + 0xb10]
mov dword [esp + 0x20], edi
mov edi, dword [edx + 0xb18]
mov dword [esp + 0x24], edi
mov edi, dword [edx + 0xb1c]
mov word [edx + 0xb2a], bx
mov dword [esp + 0x28], edi
movsx edi, word [ebp + 0x93ab80]
mov edx, eax
sub edx, edi
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
movsx edi, word [ebp + 0x93ab82]
sub edx, edi
add edx, ecx
mov edi, edx
shl edi, 4
add edi, edx
mov edx, eax
mov dword [ebp + edi*8 + 0xb08], ebx
movsx edi, word [ebp + 0x93ab80]
sub edx, edi
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
movsx edi, word [ebp + 0x93ab82]
sub edx, edi
add edx, ecx
mov edi, edx
shl edi, 4
add edi, edx
mov edx, eax
mov word [ebp + edi*8 + 0xb2c], bx
movsx edi, word [ebp + 0x93ab80]
sub edx, edi
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
movsx edi, word [ebp + 0x93ab82]
sub edx, edi
add edx, ecx
mov edi, edx
shl edi, 4
add edi, edx
mov dword [ebp + edi*8 + 0xb10], ebx
xor edi, edi
movsx edx, word [ebp + 0x93ab80]
sub eax, edx
lea edx, [eax*8]
sub edx, eax
lea eax, [edx + edx*4]
movsx edx, word [ebp + 0x93ab82]
sub eax, edx
add eax, ecx
mov ecx, eax
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x44]
lea edx, [ebp + ecx*8 + 0xb62]
mov ecx, dword [esp + 0x48]
mov dword [edx], edi
mov dword [edx + 4], edi
mov dword [edx + 8], edi
mov dword [ebp + esi*4 + 0x9001f4], eax
mov dword [ebp + esi*4 + 0x91d6b4], ecx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
jmp 0x496480
mov edx, eax
sub edx, ebx
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
mov edi, dword [esp + 0x6c]
sub edx, edi
lea edi, [edx + ecx]
mov edx, edi
shl edx, 4
add edx, edi
add edi, 0x15
mov ebx, dword [ebp + edx*8 + 0xb24]
lea edx, [ebp + edx*8]
mov dword [esp + 0x18], ebx
mov ebx, dword [edx + 0xb10]
mov dword [esp + 0x20], ebx
mov ebx, dword [edx + 0xb18]
mov edx, dword [edx + 0xb1c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], edx
mov edx, edi
shl edx, 4
add edx, edi
xor ebx, ebx
mov word [ebp + edx*8], bx
mov edx, eax
movsx edi, word [ebp + 0x93ab80]
sub edx, edi
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
movsx edi, word [ebp + 0x93ab82]
sub edx, edi
add edx, ecx
mov edi, edx
shl edi, 4
add edi, edx
mov edx, eax
mov dword [ebp + edi*8 + 0xb24], ebx
movsx edi, word [ebp + 0x93ab80]
sub edx, edi
lea edi, [edx*8]
sub edi, edx
lea edx, [edi + edi*4]
movsx edi, word [ebp + 0x93ab82]
sub edx, edi
add edx, ecx
mov edi, edx
shl edi, 4
add edi, edx
mov word [ebp + edi*8 + 0xb3c], bx
xor edi, edi
movsx edx, word [ebp + 0x93ab80]
sub eax, edx
lea edx, [eax*8]
sub edx, eax
lea eax, [edx + edx*4]
movsx edx, word [ebp + 0x93ab82]
sub eax, edx
add eax, ecx
mov ecx, eax
shl ecx, 4
add ecx, eax
lea edx, [ebp + ecx*8 + 0xb6e]
mov dword [ebp + ecx*8 + 0xb6e], edi
mov dword [edx + 4], edi
mov dword [edx + 8], edi
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
neg eax
neg ecx
mov dword [ebp + esi*4 + 0x9001f4], eax
mov dword [ebp + esi*4 + 0x91d6b4], ecx
mov esi, dword [esp + 0x14]
jmp 0x496480
cmp word [esp + 0x70], 0x64
je 0x495b26
add edi, 0x8ad0
mov dword [esp + 0x10], edi
cmp di, 0x7530
jae 0x496099
mov ecx, edi
and ecx, 0xffff
mov dword [esp + 0x1c], ecx
mov eax, dword [ebp + ecx*4 + 0x9001f4]
cmp eax, edx
jle 0x495db6
movsx edx, word [ebp + 0x93ab80]
mov esi, dword [ebp + ecx*4 + 0x91d6b4]
sub eax, edx
mov edx, eax
movsx eax, word [ebp + 0x93ab82]
sub esi, eax
mov dword [esp + 0x14], edx
test edx, edx
mov dword [esp + 0x18], esi
jl 0x495d9a
cmp edx, 0x28
jge 0x495d9a
test esi, esi
jl 0x495d9a
cmp esi, 0x23
jge 0x495d9a
lea eax, [edx*8]
sub eax, edx
lea ecx, [esi + eax*4]
add eax, ecx
mov ecx, eax
shl ecx, 4
add ecx, eax
cmp word [ebp + ecx*8 + 0xb2a], di
lea eax, [ebp + ecx*8]
jne 0x496008
movsx ecx, word [esp + 0x70]
lea edi, [ecx - 1]
cmp edi, 7
ja case.default.0x495bde
xor ecx, ecx
mov cl, byte [edi + 0x49692c]
jmp dword [ecx*4 + 0x496924]
mov ecx, dword [esp + 0x50]
dec ecx
cmp ecx, 7
ja case.default.0x495bde
jmp dword [ecx*4 + 0x496934]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
lea esi, [edx - 1]
lea edx, [ecx + 1]
jmp case.default.0x495bde
mov edx, dword [esp + 0x14]
inc edx
jmp case.default.0x495bde
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
mov ecx, dword [esp + 0x18]
lea esi, [ecx + 1]
jmp case.default.0x495bde
mov edx, dword [esp + 0x14]
dec edx
mov ecx, dword [esp + 0x18]
lea esi, [ecx + 1]
jmp case.default.0x495bde
mov edx, dword [esp + 0x14]
dec edx
jmp case.default.0x495bde
mov ecx, dword [esp + 0x14]
lea edx, [ecx - 1]
mov ecx, dword [esp + 0x18]
lea esi, [ecx - 1]
mov ecx, dword [ebp + 0x8fea74]
mov di, word [esp + 0x10]
mov dword [esp + 0x18], ecx
cmp di, word [ecx + 0x72fda]
je 0x495c87
lea ecx, [edx*8]
sub ecx, edx
lea edi, [esi + ecx*4]
add ecx, edi
mov edi, ecx
shl edi, 4
add edi, ecx
cmp word [ebp + edi*8 + 0xb2c], 0
lea ecx, [ebp + edi*8]
je 0x495c87
mov di, word [esp + 0x10]
cmp word [ecx + 0xb2a], di
je 0x495c87
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push edx
jmp 0x496078
mov ecx, dword [eax + 0xb08]
cmp word [esp + 0x70], 0x64
mov dword [esp + 0x18], ecx
je 0x495d06
movsx ecx, word [eax + 0xb2c]
mov dword [esp + 0x4c], ecx
mov cx, word [eax + 0xb2e]
mov word [esp + 0x54], cx
mov cx, word [eax + 0xb30]
mov word [esp + 0x58], cx
mov cx, word [eax + 0xb32]
mov word [esp + 0x5c], cx
mov cx, word [eax + 0xb34]
mov word [esp + 0x60], cx
mov ecx, dword [eax + 0xb20]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 0xb38]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 0xb10]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0xb18]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0xb1c]
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
lea ecx, [eax + 0xb62]
mov dword [esp + 0x6c], ecx
mov edi, dword [ecx]
mov dword [esp + 0x34], edi
mov edi, dword [ecx + 4]
mov dword [esp + 0x38], edi
mov cx, word [ecx + 8]
mov dword [ebx], 0
mov word [esp + 0x3c], cx
mov ecx, dword [esp + 0x6c]
mov edi, dword [ecx]
mov dword [ebx], edi
mov edi, dword [ecx + 4]
mov dword [ebx + 4], edi
mov cx, word [ecx + 8]
mov word [ebx + 8], cx
xor ecx, ecx
mov word [eax + 0xb2a], cx
mov dword [eax + 0xb08], ecx
mov word [eax + 0xb2c], cx
mov dword [eax + 0xb10], ecx
mov eax, dword [esp + 0x6c]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x1c]
movsx ecx, word [ebp + 0x93ab80]
add ecx, edx
mov dword [ebp + eax*4 + 0x9001f4], ecx
movsx ecx, word [ebp + 0x93ab82]
add ecx, esi
jmp 0x496479
xor eax, eax
mov dword [ebp + ecx*4 + 0x9001f4], eax
pop edi
mov dword [ebp + ecx*4 + 0x91d6b4], eax
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x44
jge 0x496008
cdq
mov edi, eax
mov eax, dword [ebp + ecx*4 + 0x91d6b4]
xor edi, edx
sub edi, edx
movsx edx, word [ebp + 0x93ab80]
sub edi, edx
cdq
mov esi, eax
movsx eax, word [ebp + 0x93ab82]
xor esi, edx
sub esi, edx
sub esi, eax
xor eax, eax
cmp edi, eax
mov dword [esp + 0x18], esi
jl 0x495d9c
cmp edi, 0x28
jge 0x495d9c
cmp esi, eax
jl 0x495d9c
cmp esi, 0x23
jge 0x495d9c
lea eax, [edi*8]
sub eax, edi
lea ecx, [esi + eax*4]
add ecx, eax
mov edx, ecx
shl edx, 4
add edx, ecx
lea eax, [ebp + edx*8]
mov dword [esp + 0x14], eax
cmp byte [eax + 0xb58], 0xff
jne 0x496008
add ecx, 0x15
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [esp + 0x10]
cmp word [ebp + edx*8], cx
lea edx, [ebp + edx*8]
mov dword [esp + 0x30], edx
jne 0x49600c
movsx ecx, word [esp + 0x70]
dec ecx
mov edx, edi
cmp ecx, 7
ja case.default.0x495e5b
xor eax, eax
mov al, byte [ecx + 0x49695c]
jmp dword [eax*4 + 0x496954]
mov ecx, dword [esp + 0x50]
lea eax, [ecx - 1]
cmp eax, 7
ja case.default.0x495e6e
jmp dword [eax*4 + 0x496964]
mov eax, dword [esp + 0x18]
lea esi, [eax - 1]
jmp case.default.0x495e6e
mov ecx, dword [esp + 0x18]
lea esi, [ecx - 1]
lea edx, [edi + 1]
jmp case.default.0x495e6e
mov eax, dword [esp + 0x18]
lea edx, [edi + 1]
lea esi, [eax + 1]
jmp case.default.0x495e6e
mov ecx, dword [esp + 0x18]
lea esi, [ecx + 1]
jmp case.default.0x495e6e
mov eax, dword [esp + 0x18]
lea edx, [edi - 1]
lea esi, [eax + 1]
jmp case.default.0x495e6e
lea edx, [edi - 1]
jmp case.default.0x495e6e
mov ecx, dword [esp + 0x18]
lea edx, [edi - 1]
lea esi, [ecx - 1]
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x8fea74]
mov di, word [esp + 0x10]
mov dword [esp + 0x18], ecx
cmp di, word [ecx + 0x72fda]
je 0x495f0c
lea ecx, [edx*8]
sub ecx, edx
lea edi, [esi + ecx*4]
add ecx, edi
mov edi, ecx
shl edi, 4
add edi, ecx
cmp word [ebp + edi*8 + 0xb2c], 0
lea ecx, [ebp + edi*8]
je 0x495f0c
mov di, word [esp + 0x10]
cmp word [ecx + 0xb2a], di
jne 0x495c79
mov ecx, dword [eax + 0xb24]
cmp word [esp + 0x70], 0x64
mov dword [esp + 0x18], ecx
je 0x495f6d
movsx ecx, word [eax + 0xb3c]
mov dword [esp + 0x4c], ecx
mov cx, word [eax + 0xb3e]
mov word [esp + 0x54], cx
mov cx, word [eax + 0xb40]
mov word [esp + 0x58], cx
mov cx, word [eax + 0xb42]
mov word [esp + 0x5c], cx
mov cx, word [eax + 0xb44]
mov word [esp + 0x60], cx
mov ecx, dword [eax + 0xb14]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 0xb48]
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
lea ecx, [eax + 0xb6e]
mov dword [esp + 0x14], ecx
mov edi, dword [ecx]
mov dword [esp + 0x34], edi
mov edi, dword [ecx + 4]
mov dword [esp + 0x38], edi
mov cx, word [ecx + 8]
mov dword [ebx], 0
mov word [esp + 0x3c], cx
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx]
mov dword [ebx], edi
mov edi, dword [ecx + 4]
mov dword [ebx + 4], edi
mov edi, dword [esp + 0x30]
mov cx, word [ecx + 8]
mov word [ebx + 8], cx
xor ecx, ecx
mov word [edi], cx
mov dword [eax + 0xb24], ecx
mov word [eax + 0xb3c], cx
mov eax, dword [esp + 0x14]
xor edi, edi
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov eax, dword [esp + 0x1c]
movsx edi, word [ebp + 0x93ab80]
add edi, edx
neg edi
mov dword [ebp + eax*4 + 0x9001f4], edi
movsx edi, word [ebp + 0x93ab82]
add edi, esi
neg edi
mov dword [ebp + eax*4 + 0x91d6b4], edi
jmp 0x496482
mov ecx, dword [esp + 0x10]
lea edi, [ebp + 0xb2a]
mov dword [esp + 0x14], 0
mov esi, 0x15
mov dword [esp + 0x18], edi
xor eax, eax
cmp word [edi], cx
je 0x4960a5
lea ecx, [esi + eax]
mov edx, ecx
shl edx, 4
add edx, ecx
mov ecx, dword [esp + 0x10]
cmp word [ebp + edx*8], cx
je 0x49629a
inc eax
add edi, 0x88
cmp eax, 0x23
jl 0x496025
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add esi, 0x23
inc edx
add edi, 0x1298
cmp esi, 0x58d
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
jl 0x496023
push ecx
mov ecx, dword [ebp + 0x8fea74]
call fcn.00418640
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ebx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x44
movsx ecx, word [esp + 0x70]
mov edx, dword [esp + 0x14]
mov esi, eax
lea edi, [ecx - 1]
cmp edi, 7
ja case.default.0x4960d1
xor ecx, ecx
mov cl, byte [edi + 0x49698c]
jmp dword [ecx*4 + 0x496984]
mov ecx, dword [esp + 0x50]
dec ecx
cmp ecx, 7
ja case.default.0x4960d1
jmp dword [ecx*4 + 0x496994]
mov edx, dword [esp + 0x14]
lea esi, [eax - 1]
inc edx
jmp case.default.0x4960d1
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
jmp case.default.0x4960d1
mov edx, dword [esp + 0x14]
lea esi, [eax + 1]
inc edx
jmp case.default.0x4960d1
mov ecx, dword [esp + 0x14]
lea edx, [ecx - 1]
lea esi, [eax + 1]
jmp case.default.0x4960d1
mov edx, dword [esp + 0x14]
dec edx
jmp case.default.0x4960d1
mov ecx, dword [esp + 0x14]
lea edx, [ecx - 1]
lea esi, [eax - 1]
mov ecx, dword [ebp + 0x8fea74]
mov di, word [esp + 0x10]
mov dword [esp + 0x18], ecx
cmp di, word [ecx + 0x72fda]
je 0x496160
lea ecx, [edx*8]
sub ecx, edx
lea edi, [esi + ecx*4]
add ecx, edi
mov edi, ecx
shl edi, 4
add edi, ecx
cmp word [ebp + edi*8 + 0xb2c], 0
lea ecx, [ebp + edi*8]
je 0x496160
mov di, word [esp + 0x10]
cmp word [ecx + 0xb2a], di
jne 0x495c79
mov edi, dword [esp + 0x14]
lea ecx, [edi*8]
sub ecx, edi
lea eax, [eax + ecx*4]
add ecx, eax
mov eax, ecx
shl eax, 4
add eax, ecx
mov ecx, dword [ebp + eax*8 + 0xb08]
cmp word [esp + 0x70], 0x64
mov dword [esp + 0x18], ecx
lea eax, [ebp + eax*8]
je 0x4961fd
movsx ecx, word [eax + 0xb2c]
mov dword [esp + 0x4c], ecx
mov cx, word [eax + 0xb2e]
mov word [esp + 0x54], cx
mov cx, word [eax + 0xb30]
mov word [esp + 0x58], cx
mov cx, word [eax + 0xb32]
mov word [esp + 0x5c], cx
mov cx, word [eax + 0xb34]
mov word [esp + 0x60], cx
mov ecx, dword [eax + 0xb20]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 0xb38]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 0xb10]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0xb18]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0xb1c]
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
lea ecx, [eax + 0xb62]
mov dword [esp + 0x6c], ecx
mov edi, dword [ecx]
mov dword [esp + 0x34], edi
mov edi, dword [ecx + 4]
mov dword [esp + 0x38], edi
mov cx, word [ecx + 8]
mov dword [ebx], 0
mov word [esp + 0x3c], cx
mov ecx, dword [esp + 0x6c]
mov edi, dword [ecx]
mov dword [ebx], edi
mov edi, dword [ecx + 4]
mov dword [ebx + 4], edi
xor edi, edi
mov cx, word [ecx + 8]
mov word [ebx + 8], cx
xor ecx, ecx
mov word [eax + 0xb2a], cx
mov dword [eax + 0xb08], ecx
mov word [eax + 0xb2c], cx
mov dword [eax + 0xb10], ecx
mov eax, dword [esp + 0x6c]
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov eax, dword [esp + 0x1c]
movsx edi, word [ebp + 0x93ab80]
add edi, edx
mov dword [ebp + eax*4 + 0x9001f4], edi
movsx edi, word [ebp + 0x93ab82]
add edi, esi
mov dword [ebp + eax*4 + 0x91d6b4], edi
jmp 0x496482
movsx ecx, word [esp + 0x70]
mov edx, dword [esp + 0x14]
mov esi, eax
lea edi, [ecx - 1]
cmp edi, 7
ja case.default.0x4962c6
xor ecx, ecx
mov cl, byte [edi + 0x4969bc]
jmp dword [ecx*4 + 0x4969b4]
mov ecx, dword [esp + 0x50]
dec ecx
cmp ecx, 7
ja case.default.0x4962c6
jmp dword [ecx*4 + 0x4969c4]
mov edx, dword [esp + 0x14]
lea esi, [eax - 1]
inc edx
jmp case.default.0x4962c6
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
jmp case.default.0x4962c6
mov edx, dword [esp + 0x14]
lea esi, [eax + 1]
inc edx
jmp case.default.0x4962c6
mov ecx, dword [esp + 0x14]
lea edx, [ecx - 1]
lea esi, [eax + 1]
jmp case.default.0x4962c6
mov edx, dword [esp + 0x14]
dec edx
jmp case.default.0x4962c6
mov ecx, dword [esp + 0x14]
lea edx, [ecx - 1]
lea esi, [eax - 1]
mov ecx, dword [ebp + 0x8fea74]
mov di, word [esp + 0x10]
mov dword [esp + 0x18], ecx
cmp di, word [ecx + 0x72fda]
je 0x496355
lea ecx, [edx*8]
sub ecx, edx
lea edi, [esi + ecx*4]
add ecx, edi
mov edi, ecx
shl edi, 4
add edi, ecx
cmp word [ebp + edi*8 + 0xb2c], 0
lea ecx, [ebp + edi*8]
je 0x496355
mov di, word [esp + 0x10]
cmp word [ecx + 0xb2a], di
jne 0x495c79
mov edi, dword [esp + 0x14]
lea ecx, [edi*8]
sub ecx, edi
lea eax, [eax + ecx*4]
add eax, ecx
mov ecx, eax
mov dword [esp + 0x30], eax
shl ecx, 4
add ecx, eax
cmp word [esp + 0x70], 0x64
lea eax, [ebp + ecx*8]
mov ecx, dword [ebp + ecx*8 + 0xb24]
mov dword [esp + 0x18], ecx
je 0x4963d8
movsx ecx, word [eax + 0xb3c]
mov dword [esp + 0x4c], ecx
mov cx, word [eax + 0xb3e]
mov word [esp + 0x54], cx
mov cx, word [eax + 0xb40]
mov word [esp + 0x58], cx
mov cx, word [eax + 0xb42]
mov word [esp + 0x5c], cx
mov cx, word [eax + 0xb44]
mov word [esp + 0x60], cx
mov ecx, dword [eax + 0xb14]
mov dword [esp + 0x64], ecx
mov ecx, dword [eax + 0xb48]
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
lea ecx, [eax + 0xb6e]
mov edi, ecx
mov dword [esp + 0x14], ecx
mov ebx, dword [edi]
mov dword [esp + 0x34], ebx
mov ebx, dword [edi + 4]
mov dword [esp + 0x38], ebx
mov di, word [edi + 8]
mov word [esp + 0x3c], di
mov edi, dword [esp + 0x6c]
mov dword [edi], 0
mov ebx, dword [ecx]
mov dword [edi], ebx
mov ebx, dword [ecx + 4]
mov dword [edi + 4], ebx
mov cx, word [ecx + 8]
mov word [edi + 8], cx
mov ecx, dword [esp + 0x30]
add ecx, 0x15
mov edi, ecx
shl edi, 4
add edi, ecx
xor ecx, ecx
mov word [ebp + edi*8], cx
mov dword [eax + 0xb24], ecx
mov word [eax + 0xb3c], cx
mov dword [eax + 0xb10], ecx
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x1c]
movsx ecx, word [ebp + 0x93ab80]
add ecx, edx
neg ecx
mov dword [ebp + eax*4 + 0x9001f4], ecx
movsx ecx, word [ebp + 0x93ab82]
add ecx, esi
neg ecx
mov dword [ebp + eax*4 + 0x91d6b4], ecx
xor ecx, ecx
mov ebx, 0xa
cmp word [esp + 0x70], bx
jne 0x4964a8
movsx eax, word [ebp + 0x93ab80]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
sub edx, eax
movsx eax, word [ebp + 0x93ab82]
sub esi, eax
cmp dword [esp + 0x80], ecx
jne 0x49662f
lea eax, [edx*8]
sub eax, edx
lea edi, [esi + eax*4]
add edi, eax
mov eax, edi
shl eax, 4
add eax, edi
cmp word [ebp + eax*8 + 0xb2c], cx
lea eax, [ebp + eax*8]
je 0x49662f
cmp byte [eax + 0xb59], bl
jne 0x49662f
lea ecx, [edi + 0x15]
mov edi, ecx
shl edi, 4
add edi, ecx
lea ecx, [ebp + edi*8]
mov di, word [eax + 0xb2a]
mov dword [esp + 0x44], ecx
mov word [ecx], di
mov cx, word [eax + 0xb2c]
mov word [eax + 0xb3c], cx
mov cl, byte [eax + 0xb5b]
mov byte [eax + 0xb5c], cl
mov cx, word [eax + 0xb2e]
mov word [eax + 0xb3e], cx
mov cx, word [eax + 0xb30]
mov word [eax + 0xb40], cx
mov cx, word [eax + 0xb32]
mov word [eax + 0xb42], cx
mov cx, word [eax + 0xb34]
mov word [eax + 0xb44], cx
mov ecx, dword [eax + 0xb20]
mov dword [eax + 0xb14], ecx
mov ecx, dword [eax + 0xb38]
mov dword [eax + 0xb48], ecx
mov ecx, dword [esp + 0x2c]
mov byte [eax + 0xb58], 0xff
mov dword [eax + 0xb00], ecx
lea ecx, [eax + 0xb62]
lea edi, [eax + 0xb6e]
mov ebx, dword [ecx]
mov dword [edi], ebx
mov ebx, dword [ecx + 4]
mov dword [edi + 4], ebx
mov bx, word [ecx + 8]
mov word [edi + 8], bx
mov ebx, dword [esp + 0x44]
mov cl, byte [ecx + 0xa]
mov byte [edi + 0xa], cl
mov ecx, dword [eax + 0xb08]
mov dword [eax + 0xb24], ecx
xor ecx, ecx
mov word [eax + 0xb2a], cx
mov word [eax + 0xb2c], cx
xor edi, edi
mov dword [eax + 0xb08], ecx
mov dword [eax + 0xb62], edi
mov dword [eax + 0xb66], edi
mov dword [eax + 0xb6a], edi
mov di, word [ebx]
mov ebx, dword [ebp + edi*4 + 0x9001f4]
lea edi, [ebp + edi*4 + 0x9001f4]
neg ebx
mov dword [edi], ebx
mov ebx, dword [esp + 0x44]
xor edi, edi
mov di, word [ebx]
mov ebx, dword [ebp + edi*4 + 0x91d6b4]
lea edi, [ebp + edi*4 + 0x91d6b4]
neg ebx
mov dword [edi], ebx
mov edi, dword [eax + 0xb10]
cmp edi, ecx
je 0x49662f
mov dword [eax + 0xb10], ecx
mov dword [eax + 0xb18], ecx
mov dword [eax + 0xb1c], ecx
mov dword [eax + 0xafc], ecx
lea eax, [edx*8]
sub eax, edx
lea edx, [esi + eax*4]
add eax, edx
mov edx, eax
shl edx, 4
add edx, eax
cmp word [ebp + edx*8 + 0xb2c], cx
lea edx, [ebp + edx*8]
je 0x49666b
mov eax, dword [ebp + 0x8fea74]
pop edi
pop esi
pop ebp
mov ax, word [eax + 0x72fda]
pop ebx
xor eax, eax
add esp, 0x30
ret 0x44
cmp dword [esp + 0x80], ecx
jne 0x4967eb
mov cx, word [esp + 0x10]
mov ax, word [esp + 0x4c]
mov word [edx + 0xb2a], cx
mov cl, byte [esp + 0x50]
mov word [edx + 0xb2c], ax
mov ax, word [esp + 0x54]
mov byte [edx + 0xb5b], cl
mov cx, word [esp + 0x58]
mov word [edx + 0xb2e], ax
mov ax, word [esp + 0x5c]
mov word [edx + 0xb30], cx
mov cx, word [esp + 0x60]
mov word [edx + 0xb32], ax
mov eax, dword [esp + 0x64]
mov word [edx + 0xb34], cx
mov ecx, dword [esp + 0x68]
mov dword [edx + 0xb20], eax
mov ax, word [esp + 0x74]
mov dword [edx + 0xb38], ecx
mov cx, word [esp + 0x78]
mov word [edx + 0xb4c], ax
mov ax, word [esp + 0x7c]
mov word [edx + 0xb4e], cx
mov ecx, dword [esp + 0x20]
mov word [edx + 0xb50], ax
mov eax, dword [esp + 0x24]
mov dword [edx + 0xb10], ecx
mov ecx, dword [esp + 0x28]
mov dword [edx + 0xb18], eax
lea ebx, [edx + 0xb62]
mov dword [edx + 0xb1c], ecx
mov ecx, ebx
xor eax, eax
lea edi, [esp + 0x34]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov ax, word [esp + 0x70]
and ecx, 3
cmp ax, 0x64
rep movsb byte es:[edi], byte [esi]
je 0x49677b
cmp ax, 0xf14
je 0x49677b
cmp ax, 0xf15
je 0x49677b
mov cl, byte [esp + 0x84]
mov byte [edx + 0xb5a], cl
mov byte [edx + 0xb59], al
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov dword [edx + 0xaf8], esi
mov dword [edx + 0xb08], ecx
mov ecx, dword [esp + 0x60]
test cl, 0xf0
je 0x49690a
sar ecx, 4
and ecx, 0xf
cmp ax, 0x64
mov dword [edx + 0xb10], ecx
jne 0x4967be
mov dword [edx + 0xb18], 0
mov dword [edx + 0xafc], esi
mov eax, dword [edx + 0xb10]
dec eax
je 0x4968f1
dec eax
jne 0x496914
pop edi
pop esi
pop ebp
mov dword [edx + 0xb1c], 0xb
mov eax, 1
pop ebx
add esp, 0x30
ret 0x44
add eax, 0x15
lea ebx, [edx + 0xb6e]
mov ecx, eax
lea edi, [esp + 0x34]
shl ecx, 4
add ecx, eax
mov ax, word [esp + 0x10]
mov word [ebp + ecx*8], ax
mov cx, word [esp + 0x4c]
mov al, byte [esp + 0x50]
mov word [edx + 0xb3c], cx
mov cx, word [esp + 0x54]
mov byte [edx + 0xb5c], al
mov ax, word [esp + 0x58]
mov word [edx + 0xb3e], cx
mov cx, word [esp + 0x5c]
mov word [edx + 0xb40], ax
mov ax, word [esp + 0x60]
mov word [edx + 0xb42], cx
mov ecx, dword [esp + 0x64]
mov word [edx + 0xb44], ax
mov eax, dword [esp + 0x68]
mov dword [edx + 0xb14], ecx
mov dword [edx + 0xb48], eax
mov eax, ebx
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x18]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x2c]
mov dword [edx + 0xb00], ecx
mov dword [edx + 0xb24], eax
mov eax, dword [esp + 0x60]
test al, 0xf0
je 0x49690a
sar eax, 4
and eax, 0xf
cmp word [esp + 0x70], 0x64
mov dword [edx + 0xb10], eax
jne 0x4968cc
mov dword [edx + 0xb18], 0
mov dword [edx + 0xafc], ecx
mov eax, dword [edx + 0xb10]
dec eax
je 0x4968f1
dec eax
jne 0x496914
pop edi
pop esi
pop ebp
mov dword [edx + 0xb1c], 0xb
mov eax, 1
pop ebx
add esp, 0x30
ret 0x44
pop edi
pop esi
pop ebp
mov dword [edx + 0xb1c], 0xd
mov eax, 1
pop ebx
add esp, 0x30
ret 0x44
mov dword [edx + 0xb10], 0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x30
ret 0x44