Function at 0x10053b50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov esi, ecx
mov ecx, dword [esp + 0x78]
mov eax, dword [0x1017f528]
xor eax, esp
mov dword [esp + 0x60], eax
lea eax, [esi + 0x3c]
mov dword [esp + 4], eax
movzx eax, byte [esi + 0x53]
mov dword [esp], esi
nop word cs:[eax + eax]
lea edx, [ecx - 0x200000]
cmp edx, 0xf
ja case.default.0x10053b8b
jmp dword [edx*4 + 0x10131984]
lea edx, [ecx - 0x600000]
cmp edx, 0xf
ja case.0x10053baf.6291466
jmp dword [edx*4 + 0x101319c4]
mov edi, ecx
and edi, 0x400000
and ecx, 0xffbfffff
cmp ecx, 0x20000e
je 0x10053c07
test eax, eax
je 0x10053c19
or edi, 0x200000
mov ecx, edi
jmp 0x10053b80
mov edx, ecx
and edx, 0x400000
and ecx, 0xffbfffff
cmp ecx, 0x20000f
je 0x10053c10
test eax, eax
je 0x10053c60
or edx, 0x200001
mov ecx, edx
jmp 0x10053b80
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x28], ecx
jmp 0x10053c21
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x1c], ecx
jmp 0x10053c68
mov dword [esp + 0x28], 1
mov ecx, esi
mov esi, dword [esi + 0x40]
mov edx, dword [ecx + 0x44]
test edi, edi
mov dword [esp + 0x1c], edi
jne 0x10053c47
cmp esi, edx
jne 0x10053de6
mov edx, dword [esp + 4]
mov esi, dword [edx]
mov ecx, dword [esp]
jmp 0x10053e01
cmp esi, edx
jne 0x10054022
mov ecx, dword [esp]
mov esi, dword [ecx + 0x3c]
mov dword [ecx + 0x44], esi
mov dword [ecx + 0x40], esi
jmp 0x10053dfd
mov dword [esp + 0x1c], 1
mov ecx, esi
mov esi, dword [esi + 0x40]
mov ecx, dword [ecx + 0x44]
mov dword [esp + 0x20], edx
test edx, edx
mov edx, dword [esp + 4]
jne 0x10053c8e
cmp esi, ecx
jne 0x10054062
mov edi, dword [edx]
mov edx, dword [esp]
jmp 0x1005494f
cmp esi, ecx
jne 0x10054075
mov edx, dword [esp]
mov edi, dword [edx + 0x3c]
mov dword [edx + 0x44], edi
mov dword [edx + 0x40], edi
jmp 0x1005494f
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x1005422c
mov edi, dword [esi + 0x3c]
cmp edi, dword [esi + 4]
jge 0x1005506e
lea ecx, [esi + 0x5c]
mov edx, edi
push 0
push 1
call fcn.1005af90
add esp, 8
test eax, eax
je 0x10053cde
mov ecx, dword [esi + 0x14]
movzx ecx, word [ecx + edi*2]
mov word [eax], cx
mov eax, dword [esi + 0x14]
mov ebx, esi
lea esi, [eax + edi*2]
mov byte [ebx + 0xe6e], 1
lea eax, [eax + edi*2]
add eax, 2
push eax
push esi
call fcn.1001d120
add esp, 8
sub dword [ebx + 8], eax
dec dword [ebx + 4]
mov ecx, dword [ebx + 0x14]
movzx eax, word [ecx + edi*2 + 2]
test ax, ax
je 0x10053d31
lea ecx, [ecx + edi*2]
add ecx, 4
nop word cs:[eax + eax]
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10053d20
mov word [esi], 0
mov esi, dword [esp]
jmp 0x1005506e
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x1005423c
mov eax, dword [esi + 4]
mov esi, dword [esi + 0x3c]
cmp esi, eax
mov ecx, dword [esp + 4]
jle 0x10053d5c
mov dword [ecx], eax
mov esi, eax
test esi, esi
mov ebp, dword [esp]
jle 0x10054c59
lea ebx, [esi - 1]
lea ecx, [ebp + 0x5c]
mov edx, ebx
push 0
push 1
call fcn.1005af90
add esp, 8
test eax, eax
je 0x10053d8a
mov ecx, dword [ebp + 0x14]
movzx ecx, word [ecx + esi*2 - 2]
mov word [eax], cx
mov eax, dword [ebp + 0x14]
lea edi, [eax + ebx*2]
mov byte [ebp + 0xe6e], 1
lea eax, [eax + esi*2]
push eax
push edi
call fcn.1001d120
add esp, 8
sub dword [ebp + 8], eax
dec dword [ebp + 4]
mov ecx, dword [ebp + 0x14]
movzx eax, word [ecx + esi*2]
test ax, ax
je 0x10054c4b
lea ecx, [ecx + esi*2]
add ecx, 2
mov edx, dword [esp + 4]
nop word cs:[eax + eax]
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10053dd0
jmp 0x10054c4f
jle 0x10053df0
mov ecx, dword [esp]
mov dword [ecx + 0x40], edx
mov esi, edx
mov ecx, dword [esp]
mov dword [ecx + 0x3c], esi
mov dword [ecx + 0x44], esi
mov byte [ecx + 0x52], 0
mov edx, dword [esp + 4]
lea edi, [ecx + 4]
mov dword [esp + 0x20], edi
mov ecx, dword [ecx + 4]
cmp esi, ecx
jle 0x10053e13
mov dword [edx], ecx
mov esi, ecx
lea ebp, [esp + 0x48]
mov ecx, ebp
mov edx, dword [esp]
push eax
push esi
call fcn.1005ac60
mov edx, dword [esp + 0xc]
add esp, 8
cmp dword [esp + 0x28], 0
jle 0x1005401a
mov eax, dword [esp]
lea esi, [eax + 0x58]
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x5c]
cmp byte [eax + 0x52], 0
mov ecx, dword [eax + 0x14]
mov eax, dword [0x1017f770]
mov dword [esp + 0x14], eax
cmove esi, ebp
vmovss xmm0, dword [esi]
vmovss xmm1, dword [0x101296d4]
xor eax, eax
mov dword [esp + 0x10], ecx
jmp 0x10053e81
inc eax
mov edi, dword [esp + 0xc]
mov ebx, esi
cmp eax, dword [esp + 0x28]
je 0x1005401a
cmp ebx, edi
je 0x1005401a
mov dword [esp + 0x18], eax
mov dword [edx], ebx
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
lea edi, [ecx + ebx*2]
mov eax, ebx
mov ebx, edi
mov dword [esp + 0xc], eax
cmp esi, eax
mov eax, esi
jle 0x10053ebd
lea esi, [ecx + eax*2]
mov ebx, edi
nop dword [eax + eax]
cmp word [ebx], 0xa
lea ebx, [ebx + 2]
je 0x10053ebd
cmp ebx, esi
jb 0x10053eb0
mov dword [esp + 8], eax
sub ebx, edi
mov ebp, dword [esp + 0xc]
test ebx, ebx
jle 0x10053f60
shr ebx, 1
cmp ebx, 2
mov eax, 1
cmovl ebx, eax
vxorps xmm2, xmm2, xmm2
mov ebp, dword [esp + 0xc]
nop word cs:[eax + eax]
movzx esi, word [ecx + ebp*2]
cmp esi, 0xa
je 0x10053f60
mov edi, ebp
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x1930]
lea eax, [esi*4]
add eax, dword [edx + 8]
lea ebp, [edx + 0xc]
cmp dword [edx], esi
cmovg ebp, eax
vmovss xmm3, dword [ecx + 0x1934]
vdivss xmm3, xmm3, dword [edx + 0x10]
vmulss xmm3, xmm3, dword [ebp]
vucomiss xmm3, xmm1
jne 0x10053f31
jnp 0x10053f4d
vaddss xmm2, xmm2, xmm3
vucomiss xmm2, xmm0
mov edx, dword [esp + 4]
mov ebp, edi
ja 0x10053f59
inc ebp
mov dword [edx], ebp
dec ebx
mov ecx, dword [esp + 0x10]
jne 0x10053ef0
jmp 0x10053f60
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov ebp, edi
jmp 0x10053f60
mov ecx, dword [esp + 0x10]
nop dword [eax]
mov eax, dword [esp]
mov ebx, dword [eax + 0x40]
mov esi, dword [eax + 0x44]
cmp ebx, esi
jne 0x10053f80
mov eax, dword [esp + 8]
jmp 0x10053fa4
mov eax, dword [esp + 8]
cmp ebx, eax
jle 0x10054000
mov eax, dword [esp]
mov edi, dword [esp + 8]
mov dword [eax + 0x40], edi
mov eax, dword [esp + 8]
mov ebx, eax
cmp esi, eax
jg 0x10054004
cmp ebx, esi
jne 0x10053fa4
mov dword [edx], ebx
mov ebp, ebx
cmp ebp, eax
mov esi, eax
mov eax, dword [esp]
jle 0x10053fb1
mov dword [edx], esi
mov ebp, esi
mov byte [eax + 0x52], 1
vmovss dword [eax + 0x58], xmm0
cmp dword [esp + 0x1c], 0
mov esi, dword [esp + 0xc]
je 0x10053fc8
mov dword [eax + 0x44], ebp
lea edi, [esi - 1]
test esi, esi
mov eax, 0
cmovle edi, eax
mov esi, edi
sar esi, 0x1f
and esi, edi
mov eax, dword [esp + 0x18]
test edi, edi
jle 0x10053e70
lea ebx, [edi - 1]
cmp word [ecx + edi*2 - 2], 0xa
mov edi, ebx
jne 0x10053fe0
inc ebx
mov esi, ebx
jmp 0x10053e70
cmp esi, eax
jle 0x10053f9c
mov eax, dword [esp]
mov esi, dword [esp + 8]
mov dword [eax + 0x44], esi
mov eax, dword [esp + 8]
mov esi, eax
cmp ebx, esi
je 0x10053fa0
jmp 0x10053fa4
mov esi, dword [esp]
jmp 0x10055072
mov ecx, dword [esp]
mov dword [ecx + 0x3c], edx
mov ecx, dword [ecx + 4]
cmp esi, ecx
jle 0x10054037
mov esi, dword [esp]
mov dword [esi + 0x40], ecx
mov esi, ecx
mov edi, edx
cmp edx, ecx
jle 0x10054045
mov edi, dword [esp]
mov dword [edi + 0x44], ecx
mov edi, ecx
mov ebx, dword [esp]
add ebx, 4
mov dword [esp + 0x20], ebx
cmp esi, edi
jne 0x10054532
mov edx, dword [esp + 4]
mov dword [edx], esi
jmp 0x10053e0b
jle 0x1005453d
mov edx, dword [esp]
mov dword [edx + 0x44], esi
mov edi, esi
jmp 0x10054541
mov edx, dword [esp]
mov dword [edx + 0x3c], ecx
mov edx, dword [edx + 4]
cmp esi, edx
jle 0x1005408a
mov esi, dword [esp]
mov dword [esi + 0x40], edx
mov esi, edx
mov edi, ecx
cmp ecx, edx
jle 0x10054098
mov edi, dword [esp]
mov dword [edi + 0x44], edx
mov edi, edx
mov ebx, dword [esp]
add ebx, 4
mov dword [esp + 0x24], ebx
cmp esi, edi
jne 0x10054561
mov ecx, dword [esp + 4]
mov dword [ecx], esi
jmp 0x1005495b
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp edx, ecx
jne 0x100546c7
mov ecx, dword [esp + 4]
mov edx, dword [ecx]
jmp 0x100546e4
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
cmp ecx, eax
jne 0x100540e3
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x40], ecx
mov eax, ecx
lea edx, [eax + 1]
mov dword [esi + 0x44], edx
cmp ecx, edx
jne 0x100546fe
mov edx, ecx
jmp 0x10054717
mov ecx, esi
mov esi, dword [esi + 4]
mov edi, dword [ecx + 0x40]
mov edx, dword [ecx + 0x44]
cmp edi, edx
je 0x1005473c
cmp edi, esi
jle 0x10054722
mov ecx, dword [esp]
mov dword [ecx + 0x40], esi
mov edi, esi
cmp edx, esi
jg 0x1005472a
cmp edi, edx
je 0x10054736
jmp 0x1005473e
mov ecx, dword [esi + 4]
mov edx, esi
mov esi, dword [esi + 0x40]
mov edx, dword [edx + 0x44]
cmp esi, edx
je 0x10054780
cmp esi, ecx
jle 0x10054766
mov esi, dword [esp]
mov dword [esi + 0x40], ecx
mov esi, ecx
cmp edx, ecx
jg 0x1005476e
cmp esi, edx
je 0x1005477a
jmp 0x10054782
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x10054176
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x3c], 0
jmp 0x1005506e
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x10054197
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x44], eax
mov dword [esi + 0x3c], eax
jmp 0x1005506e
mov ebx, dword [esi + 0x3c]
mov eax, esi
mov esi, dword [esi + 0x40]
cmp esi, dword [eax + 0x44]
jne 0x100541bd
mov eax, dword [esp]
mov dword [eax + 0x44], ebx
mov dword [eax + 0x40], ebx
mov esi, ebx
mov edi, ebx
sar edi, 0x1f
and edi, ebx
dec edi
nop word cs:[eax + eax]
test ebx, ebx
jle 0x10054641
dec ebx
mov ecx, dword [esp]
mov edx, ebx
call fcn.1005b1a0
test eax, eax
je 0x100541d0
jmp 0x10054643
mov ebx, dword [esi + 0x3c]
mov eax, esi
mov esi, dword [esi + 0x40]
cmp esi, dword [eax + 0x44]
jne 0x10054201
mov dword [eax + 0x44], ebx
mov dword [eax + 0x40], ebx
mov esi, ebx
mov edi, dword [eax + 4]
lea ebp, [ebx + 1]
cmp edi, ebp
cmovg ebp, edi
nop dword [eax]
inc ebx
cmp ebx, edi
jge 0x10054699
mov ecx, dword [esp]
mov edx, ebx
call fcn.1005b1a0
test eax, eax
je 0x10054210
jmp 0x1005469b
mov ecx, esi
mov edx, dword [esp + 4]
call fcn.1005a950
jmp 0x1005506e
mov ecx, esi
mov edx, dword [esp + 4]
call fcn.1005a950
mov ebp, esi
jmp 0x10054c59
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
jne 0x10054520
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
test eax, eax
jle 0x1005506e
dec eax
mov dword [ecx], eax
jmp 0x1005506e
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
cmp ecx, edx
jne 0x1005482c
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x3c]
inc eax
mov dword [esi + 0x3c], eax
mov edx, dword [esp + 4]
jmp 0x1005501a
mov edx, esi
mov esi, dword [esi + 4]
mov ecx, dword [edx + 0x40]
mov edx, dword [edx + 0x44]
cmp ecx, edx
je 0x10054856
cmp ecx, esi
jle 0x1005483c
mov ecx, dword [esp]
mov dword [ecx + 0x40], esi
mov ecx, esi
cmp edx, esi
jg 0x10054844
cmp ecx, edx
je 0x10054850
jmp 0x10054858
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x40]
mov esi, dword [esi + 0x44]
cmp edx, esi
je 0x100548b5
cmp edx, ecx
jle 0x1005489b
mov edx, dword [esp]
mov dword [edx + 0x40], ecx
mov edx, ecx
cmp esi, ecx
jg 0x100548a3
cmp edx, esi
je 0x100548af
jmp 0x100548b7
mov dword [esi + 0x44], 0
vxorps xmm0, xmm0, xmm0
vmovlps qword [esi + 0x3c], xmm0
jmp 0x1005506e
mov eax, dword [esi + 4]
mov dword [esi + 0x3c], eax
vxorps xmm0, xmm0, xmm0
vmovlps qword [esi + 0x40], xmm0
jmp 0x1005506e
movsx eax, word [esi + 0xe5a]
test eax, eax
je 0x1005506e
lea edi, [esi + 0x5c]
shl eax, 4
mov ebx, dword [eax + edi - 0x10]
mov ecx, dword [eax + edi - 0xc]
mov ebp, dword [eax + edi - 8]
mov edx, dword [eax + edi - 4]
movsx eax, word [esi + 0xe5c]
shl eax, 4
mov dword [eax + edi - 4], 0xffffffff
mov dword [eax + edi - 0xc], ebp
mov dword [esp + 0x14], ecx
mov dword [eax + edi - 8], ecx
mov dword [eax + edi - 0x10], ebx
test ebp, ebp
je 0x10054fcd
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0xe60]
mov dword [esp + 4], ebp
lea ecx, [edx + ebp]
cmp ecx, 0x3e6
jle 0x10054ca5
add eax, edi
add eax, 0xfffffff4
mov dword [eax], 0
mov edx, dword [esp + 4]
lea edi, [ebx + ebx]
mov ebp, ebx
mov ebx, esi
mov esi, dword [esi + 0x14]
add esi, edi
mov byte [ebx + 0xe6e], 1
lea eax, [esi + edx*2]
push eax
push esi
vzeroupper
call fcn.1001d120
mov edx, dword [esp + 0xc]
add esp, 8
vmovq xmm0, qword [ebx + 4]
vmovd xmm1, edx
vpinsrd xmm1, xmm1, eax, 1
vpsubd xmm0, xmm0, xmm1
vmovq qword [ebx + 4], xmm0
mov ecx, dword [ebx + 0x14]
mov ebx, ebp
lea eax, [ecx + ebp*2]
movzx eax, word [eax + edx*2]
test ax, ax
je 0x10054fc1
lea edx, [edi + edx*2]
add ecx, edx
add ecx, 2
mov edx, dword [esp + 0x10]
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10054405
jmp 0x10054fc5
movsx eax, word [esi + 0xe5c]
cmp eax, 0x63
je 0x1005506e
movsx ecx, word [esi + 0xe5a]
shl ecx, 4
shl eax, 4
mov edi, dword [esi + eax + 0x5c]
mov ebp, dword [esi + eax + 0x60]
mov edx, dword [esi + eax + 0x64]
mov eax, dword [esi + eax + 0x68]
mov dword [esi + ecx + 0x64], ebp
mov dword [esi + ecx + 0x60], edx
mov dword [esi + ecx + 0x5c], edi
mov dword [esi + ecx + 0x68], 0xffffffff
test edx, edx
je 0x10055031
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 4], edi
lea eax, [esi + ecx]
add eax, 0x60
mov ebx, dword [esi + 0xe60]
mov dword [esp + 0x14], edx
lea edi, [ebx + edx]
cmp edi, dword [esi + 0xe64]
jle 0x10054f0a
vxorps xmm0, xmm0, xmm0
vmovlps qword [eax], xmm0
jmp 0x10054f49
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
jne 0x10054520
mov eax, dword [esp + 4]
mov edi, dword [eax]
mov esi, edi
sar esi, 0x1f
and esi, edi
dec esi
nop word cs:[eax + eax]
test edi, edi
jle 0x10054bd7
dec edi
mov ecx, dword [esp]
mov edx, edi
call fcn.1005b1a0
test eax, eax
je 0x100544c0
jmp 0x10054bd9
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp edx, ecx
jne 0x10054932
mov eax, esi
mov esi, dword [esi + 4]
mov ebx, dword [eax + 0x3c]
lea edi, [ebx + 1]
cmp esi, edi
cmovg edi, esi
mov ecx, dword [esp + 4]
nop
inc ebx
cmp ebx, esi
jge 0x10054bf6
mov ecx, dword [esp]
mov edx, ebx
call fcn.1005b1a0
mov ecx, dword [esp + 4]
test eax, eax
je 0x10054500
jmp 0x10054bf8
jle 0x10054527
mov dword [esi + 0x40], ecx
mov eax, ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x44], eax
jmp 0x1005506e
mov esi, edx
mov edx, dword [esp + 4]
jmp 0x10053e0b
mov edi, ecx
mov ecx, esi
cmp ecx, edi
je 0x10054942
mov edx, dword [esp]
mov ecx, dword [edx + 4]
cmp edi, ecx
jle 0x10054945
mov dword [edx + 0x44], ecx
mov edi, ecx
jmp 0x10054945
mov esi, ecx
jmp 0x1005495b
xor edx, edx
cmp ecx, 0x200000
cmovl edx, ecx
test edx, edx
jle 0x10055072
mov word [esp + 0x48], dx
cmp edx, 0xa
jne 0x1005458d
test al, al
jne 0x10055072
cmp byte [esi + 0x48], 0
je 0x10054c64
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x10054c64
mov ebx, dword [esi + 0x3c]
cmp ebx, dword [esi + 4]
jge 0x10054c64
lea ecx, [esi + 0x5c]
mov edx, ebx
push 1
push 1
call fcn.1005af90
add esp, 8
test eax, eax
je 0x100545ce
mov ecx, dword [esi + 0x14]
movzx ecx, word [ecx + ebx*2]
mov word [eax], cx
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0x3c]
mov ebx, esi
lea esi, [eax + edi*2]
mov byte [ebx + 0xe6e], 1
lea eax, [eax + edi*2 + 2]
push eax
push esi
call fcn.1001d120
add esp, 8
sub dword [ebx + 8], eax
dec dword [ebx + 4]
mov ecx, dword [ebx + 0x14]
movzx eax, word [ecx + edi*2 + 2]
test ax, ax
je 0x10054618
lea ecx, [ecx + edi*2]
add ecx, 4
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10054607
mov word [esi], 0
mov esi, dword [esp]
mov edx, dword [esi + 0x3c]
lea eax, [esp + 0x48]
mov ecx, esi
push 1
push eax
call fcn.1005a7f0
add esp, 8
test al, al
jne 0x10054c9d
jmp 0x10055072
mov ebx, edi
mov eax, ebx
sar eax, 0x1f
andn ecx, eax, ebx
mov eax, dword [esp]
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x44], ecx
mov eax, dword [eax + 4]
cmp esi, ecx
je 0x10054681
cmp esi, eax
jle 0x10054669
mov edx, dword [esp]
mov dword [edx + 0x40], eax
mov esi, eax
mov edx, ecx
cmp ecx, eax
jle 0x10054677
mov edx, dword [esp]
mov dword [edx + 0x44], eax
mov edx, eax
cmp esi, edx
jne 0x10054683
mov ecx, dword [esp + 4]
mov dword [ecx], esi
mov ecx, esi
cmp ecx, eax
mov esi, dword [esp]
jle 0x10055072
mov ecx, dword [esp + 4]
mov dword [ecx], eax
jmp 0x10055072
mov ebx, ebp
cmp ebx, edi
cmovge ebx, edi
mov eax, dword [esp]
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x44], ebx
cmp esi, ebx
jne 0x100547a3
cmp esi, edi
mov esi, dword [esp]
jle 0x10055072
mov eax, dword [esp + 4]
mov dword [eax], edi
jmp 0x10055072
cmp edx, eax
jle 0x100547c5
mov dword [esi + 0x40], eax
mov edx, eax
cmp ecx, eax
jg 0x100547cd
cmp edx, ecx
jne 0x100547da
cmp edx, eax
cmovl eax, edx
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov ecx, eax
test ecx, ecx
jg 0x100547de
jmp 0x100547e2
mov esi, dword [esi + 4]
cmp ecx, esi
jle 0x1005470b
mov ecx, dword [esp]
mov dword [ecx + 0x40], esi
cmp eax, esi
jl 0x10054717
mov eax, dword [esp]
mov dword [eax + 0x44], esi
mov edx, esi
mov esi, dword [esp]
mov dword [esi + 0x3c], edx
jmp 0x1005506e
cmp edx, esi
jle 0x10054123
mov ecx, dword [esp]
mov dword [ecx + 0x44], esi
mov edx, esi
cmp edi, edx
jne 0x1005473e
mov ecx, dword [esp + 4]
mov dword [ecx], edi
mov edx, edi
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
cmp ecx, esi
jle 0x10054750
mov ecx, dword [esp + 4]
mov dword [ecx], esi
mov ecx, esi
cmp edi, edx
jne 0x100547ea
mov esi, dword [esp]
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
jmp 0x100547f5
cmp edx, ecx
jle 0x1005415b
mov edx, dword [esp]
mov dword [edx + 0x44], ecx
mov edx, ecx
cmp esi, edx
jne 0x10054782
mov edx, dword [esp + 4]
mov dword [edx], esi
mov edx, esi
mov edi, dword [esp + 4]
mov edi, dword [edi]
cmp edi, ecx
jle 0x10054794
mov edi, dword [esp + 4]
mov dword [edi], ecx
mov edi, ecx
cmp esi, edx
jne 0x1005480e
mov esi, dword [esp]
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edi
jmp 0x10054819
cmp esi, edi
jle 0x100547af
mov eax, dword [esp]
mov dword [eax + 0x40], edi
mov esi, edi
cmp esi, ebx
mov esi, dword [esp]
jne 0x10055072
mov eax, dword [esp + 4]
mov dword [eax], ebx
jmp 0x10055072
cmp ecx, eax
jle 0x100546dc
mov dword [esi + 0x44], eax
mov ecx, eax
cmp edx, ecx
je 0x100546e4
test ecx, ecx
jle 0x100547e2
dec ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x3c], ecx
jmp 0x1005506e
mov ecx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, edx
mov esi, dword [esp]
test eax, eax
je 0x10054b5f
mov eax, dword [esp + 4]
mov dword [eax], 0
xor ecx, ecx
jmp 0x10054bcf
mov esi, dword [esp + 4]
mov dword [esi], edx
mov edi, edx
mov esi, dword [esp]
test eax, eax
je 0x10054b85
mov eax, dword [esp + 4]
mov dword [eax], ecx
jmp 0x10054bcf
jle 0x10054c07
mov dword [esi + 0x44], ecx
mov eax, ecx
jmp 0x10054c0b
cmp edx, esi
jle 0x100542be
mov edx, dword [esp]
mov dword [edx + 0x44], esi
mov edx, esi
cmp ecx, edx
jne 0x10054858
mov edx, dword [esp + 4]
mov dword [edx], ecx
mov edx, ecx
mov edi, dword [esp + 4]
mov edi, dword [edi]
cmp edi, esi
jle 0x1005486a
mov edi, dword [esp + 4]
mov dword [edi], esi
mov edi, esi
cmp ecx, edx
mov esi, dword [esp]
je 0x10054884
jle 0x10054878
mov dword [esi + 0x40], edx
mov ecx, edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x44], ecx
mov byte [esi + 0x52], 0
mov edi, ecx
test eax, eax
je 0x10054ba0
mov eax, dword [esp + 4]
mov dword [eax], 0
jmp 0x1005506e
cmp esi, ecx
jle 0x100542f4
mov esi, dword [esp]
mov dword [esi + 0x44], ecx
mov esi, ecx
cmp edx, esi
jne 0x100548b7
mov esi, dword [esp + 4]
mov dword [esi], edx
mov esi, edx
mov edi, dword [esp + 4]
mov edi, dword [edi]
cmp edi, ecx
jle 0x1005491c
mov edi, dword [esp + 4]
mov dword [edi], ecx
mov edi, ecx
cmp edx, esi
je 0x10054920
jle 0x100548d7
mov edx, dword [esp]
mov dword [edx + 0x40], esi
mov edx, esi
mov esi, dword [esp]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x44], edx
mov byte [esi + 0x52], 0
mov edi, edx
test eax, eax
jne 0x10054924
cmp edi, ecx
mov esi, dword [esp]
jge 0x1005506e
mov eax, dword [esi + 0x14]
neg ecx
inc edi
cmp word [eax + edi*2 - 2], 0xa
je 0x1005506e
mov edx, dword [esp + 4]
mov dword [edx], edi
lea edx, [ecx + edi]
inc edx
inc edi
cmp edx, 1
jne 0x100548fb
jmp 0x1005506e
cmp edx, esi
jne 0x100548cd
test eax, eax
je 0x100548ea
mov eax, dword [esp + 4]
mov dword [eax], ecx
mov esi, dword [esp]
jmp 0x1005506e
jle 0x10054c2c
mov dword [esi + 0x44], edx
mov eax, edx
jmp 0x10054c30
mov edx, dword [esp]
mov dword [edx + 0x3c], edi
mov dword [edx + 0x40], edi
mov byte [edx + 0x52], 0
lea ecx, [edx + 4]
mov dword [esp + 0x24], ecx
mov edx, dword [edx + 4]
mov esi, edi
cmp esi, edx
jle 0x10054967
mov ecx, dword [esp + 4]
mov dword [ecx], edx
mov esi, edx
lea ebx, [esp + 0x48]
mov ecx, ebx
mov edx, dword [esp]
push eax
push esi
mov esi, edx
call fcn.1005ac60
add esp, 8
cmp dword [esp + 0x1c], 0
mov edx, dword [esp + 4]
jle 0x10055072
lea eax, [esi + 0x58]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xc], ecx
cmp byte [esi + 0x52], 0
mov edi, dword [esp + 0x58]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x14], ecx
cmove eax, ebx
mov ecx, dword [0x1017f770]
mov dword [esp + 0x10], ecx
vmovss xmm0, dword [eax]
mov eax, edi
xor edi, edi
vmovss xmm1, dword [0x101296d4]
mov ebp, dword [esp + 0x10]
jmp 0x100549df
inc edi
cmp edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
je 0x10055072
test eax, eax
je 0x10055072
mov ecx, eax
mov eax, dword [esp + 0xc]
add eax, ecx
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x14]
cmp word [ecx + eax*2 - 2], 0xa
jne 0x10055072
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0xc]
mov dword [edx], ecx
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
mov dword [esp + 8], edi
mov eax, dword [esp + 0x14]
lea eax, [eax + ecx*2]
mov esi, eax
cmp edi, ecx
jle 0x10054a4d
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 8]
lea edi, [ecx + esi*2]
mov esi, eax
nop word cs:[eax + eax]
cmp word [esi], 0xa
lea esi, [esi + 2]
je 0x10054a4d
cmp esi, edi
jb 0x10054a40
sub esi, eax
mov eax, esi
sar eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
test esi, esi
jle 0x10054ae0
mov eax, dword [esp + 0x18]
cmp eax, 2
mov esi, 1
cmovge esi, eax
vxorps xmm2, xmm2, xmm2
mov eax, dword [esp + 0xc]
nop word [eax + eax]
mov ecx, dword [esp + 0x14]
movzx edi, word [ecx + eax*2]
cmp edi, 0xa
je 0x10054ae0
mov ecx, dword [ebp + 0x1930]
lea edx, [edi*4]
add edx, dword [ecx + 8]
lea ebx, [ecx + 0xc]
cmp dword [ecx], edi
cmovg ebx, edx
vmovss xmm3, dword [ebp + 0x1934]
vdivss xmm3, xmm3, dword [ecx + 0x10]
vmulss xmm3, xmm3, dword [ebx]
vucomiss xmm3, xmm1
jne 0x10054abe
jnp 0x10054ad4
vaddss xmm2, xmm2, xmm3
vucomiss xmm2, xmm0
mov edx, dword [esp + 4]
ja 0x10054ae0
inc eax
mov dword [edx], eax
dec esi
jne 0x10054a80
jmp 0x10054ae0
mov edx, dword [esp + 4]
nop dword [eax + eax]
mov ecx, dword [esp]
mov esi, dword [ecx + 0x40]
mov edi, dword [ecx + 0x44]
cmp esi, edi
jne 0x10054b00
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 8]
jmp 0x10054b38
mov ecx, dword [esp + 8]
cmp esi, ecx
jle 0x10054b18
mov ecx, dword [esp]
mov esi, dword [esp + 8]
mov dword [ecx + 0x40], esi
mov ecx, dword [esp + 8]
mov esi, ecx
cmp edi, ecx
jle 0x10054b2c
mov ecx, dword [esp]
mov edi, dword [esp + 8]
mov dword [ecx + 0x44], edi
mov ecx, dword [esp + 8]
mov edi, ecx
cmp esi, edi
mov edi, dword [esp + 0x28]
jne 0x10054b38
mov dword [edx], esi
mov eax, esi
cmp eax, ecx
jle 0x10054b40
mov dword [edx], ecx
mov eax, ecx
mov esi, dword [esp]
mov byte [esi + 0x52], 1
vmovss dword [esi + 0x58], xmm0
cmp dword [esp + 0x20], 0
je 0x100549d0
mov dword [esi + 0x44], eax
jmp 0x100549d0
test ecx, ecx
mov edx, dword [esp + 4]
jle 0x10054bcf
mov eax, dword [esi + 0x14]
cmp word [eax + ecx*2 - 2], 0xa
je 0x10054bcf
dec ecx
mov dword [edx], ecx
mov edx, ecx
inc edx
cmp edx, 1
mov edx, dword [esp + 4]
ja 0x10054b6a
xor ecx, ecx
jmp 0x10054bcf
cmp edi, ecx
mov edx, dword [esp + 4]
jge 0x10054bcd
mov eax, dword [esi + 0x14]
cmp word [eax + edi*2], 0xa
je 0x10054bcd
inc edi
mov dword [edx], edi
cmp ecx, edi
jne 0x10054b90
jmp 0x10054bcf
test edi, edi
mov edx, dword [esp + 4]
jle 0x1005506e
mov eax, dword [esi + 0x14]
dec edi
cmp word [eax + edi*2], 0xa
je 0x1005506e
mov dword [edx], edi
lea ecx, [edi - 1]
inc edi
cmp edi, 1
mov edi, ecx
ja 0x10054bb0
jmp 0x1005506e
mov ecx, edi
mov dword [esi + 0x44], ecx
jmp 0x1005506e
mov edi, esi
mov eax, edi
sar eax, 0x1f
andn eax, eax, edi
mov esi, dword [esp]
mov ecx, dword [esi + 4]
cmp eax, ecx
cmovl ecx, eax
mov dword [esi + 0x3c], ecx
jmp 0x10055072
mov ebx, edi
cmp ebx, esi
cmovl esi, ebx
mov dword [ecx], esi
mov esi, dword [esp]
jmp 0x10055072
mov eax, edx
mov edx, ecx
mov ecx, dword [esi + 4]
cmp edx, eax
je 0x10055010
cmp eax, ecx
mov edx, dword [esp + 4]
jle 0x10055014
mov dword [esi + 0x44], ecx
mov eax, ecx
jmp 0x10055014
mov eax, ecx
mov ecx, edx
cmp ecx, eax
je 0x10054c40
mov ecx, dword [esi + 4]
cmp eax, ecx
jle 0x10054c40
mov dword [esi + 0x44], ecx
mov eax, ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
jmp 0x1005506e
mov edx, dword [esp + 4]
mov word [edi], 0
dec dword [edx]
mov ebp, dword [esp]
mov byte [ebp + 0x52], 0
mov esi, ebp
jmp 0x10055072
mov ecx, esi
mov edx, dword [esp + 4]
call fcn.1005a950
mov edx, dword [esi + 0x3c]
lea eax, [esp + 0x48]
mov ecx, esi
push 1
push eax
call fcn.1005a7f0
add esp, 8
test al, al
je 0x10055072
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x5c]
push 1
push 0
call fcn.1005af90
add esp, 8
inc dword [esi + 0x3c]
jmp 0x1005506e
mov eax, dword [esi + 0xe64]
cmp ecx, eax
mov dword [esp + 0x18], ebx
jle 0x1005509b
lea ecx, [esi + 0x68c]
mov dword [esp + 0xc], ecx
movzx ecx, word [esi + 0xe5c]
lea ebp, [esi + 0x68]
mov dword [esp + 8], ebp
vpbroadcastq ymm0, qword [0x10131700]
vmovdqu ymmword [esp + 0x28], ymm0
jmp 0x10054d2e
movsx eax, cx
shl eax, 4
mov ecx, 0x620
sub ecx, eax
lea edx, [edi + eax]
add eax, edi
add eax, 0x10
push ecx
push edx
push eax
vzeroupper
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ecx, dword [esi + 0xe5c]
mov edx, dword [esi + 0xe60]
inc ecx
mov word [esi + 0xe5c], cx
mov eax, dword [esi + 0xe64]
mov esi, dword [esp + 4]
add esi, edx
cmp esi, eax
mov esi, dword [esp]
jle 0x100550a2
cmp cx, 0x63
je 0x1005506e
jge 0x10054d1d
cmp dword [esi + 0x688], 0
js 0x10054ce0
mov ebp, dword [esi + 0x680]
lea ecx, [eax + ebp]
mov dword [esi + 0xe64], ecx
mov esi, dword [esp + 0xc]
lea edx, [esi + ecx*2]
lea eax, [esi + eax*2]
add ecx, ecx
mov esi, 0x7ce
sub esi, ecx
push esi
mov esi, dword [esp + 4]
push eax
push edx
vzeroupper
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
movsx eax, word [esi + 0xe5c]
cmp eax, 0x61
jg 0x10054ce3
mov edx, 0x62
sub edx, eax
mov ecx, eax
cmp edx, 9
vmovdqu ymm3, ymmword [esp + 0x28]
vmovdqa xmm4, xmmword [0x10131710]
vpcmpeqd xmm5, xmm5, xmm5
jb 0x10054ed8
mov esi, edx
and esi, 7
mov ecx, 8
cmove esi, ecx
sub edx, esi
mov ecx, edx
add ecx, eax
lea edx, [esi + eax]
add edx, 0xffffff9e
mov esi, eax
shl esi, 4
add esi, dword [esp + 8]
jmp 0x10054ddb
sub esi, 0xffffff80
add edx, 8
je 0x10054ed4
vpermd ymm0, ymm3, ymmword [esi + 0x60]
vpermd ymm1, ymm3, ymmword [esi + 0x40]
vmovdqu xmm2, xmmword [esi]
vpunpckldq xmm2, xmm2, xmmword [esi + 0x10]
vpblendd ymm0, ymm1, ymm0, 0xc0
vpermd ymm1, ymm4, ymmword [esi + 0x20]
vpblendd xmm1, xmm2, xmm1, 0xc
vpblendd ymm0, ymm1, ymm0, 0xf0
vpcmpgtd xmm1, xmm1, xmm5
vmovd ebx, xmm1
test bl, 1
je 0x10054e1d
vmovd ebx, xmm0
add ebx, ebp
mov dword [esi], ebx
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 4
test bl, 1
je 0x10054e37
vpextrd ebx, xmm0, 1
add ebx, ebp
mov dword [esi + 0x10], ebx
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 8
test bl, 1
je 0x10054e51
vpextrd ebx, xmm0, 2
add ebx, ebp
mov dword [esi + 0x20], ebx
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 0xc
test bl, 1
je 0x10054e6b
vpextrd ebx, xmm0, 3
add ebx, ebp
mov dword [esi + 0x30], ebx
vextracti128 xmm0, ymm0, 1
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 0
test bl, 1
je 0x10054e89
vmovd ebx, xmm0
add ebx, ebp
mov dword [esi + 0x40], ebx
vpextrb ebx, xmm1, 4
test bl, 1
je 0x10054e9f
vpextrd ebx, xmm0, 1
add ebx, ebp
mov dword [esi + 0x50], ebx
vpextrb ebx, xmm1, 8
test bl, 1
je 0x10054eb5
vpextrd ebx, xmm0, 2
add ebx, ebp
mov dword [esi + 0x60], ebx
vpextrb ebx, xmm1, 0xc
test bl, 1
je 0x10054dcf
vpextrd ebx, xmm0, 3
add ebx, ebp
mov dword [esi + 0x70], ebx
jmp 0x10054dcf
mov ebx, dword [esp + 0x18]
lea edx, [ecx - 0x62]
shl ecx, 4
add ecx, dword [esp + 8]
jmp 0x10054ef6
add ecx, 0x10
inc edx
je 0x10054f02
mov esi, dword [ecx]
test esi, esi
js 0x10054ef0
add esi, ebp
mov dword [ecx], esi
jmp 0x10054ef0
mov esi, dword [esp]
jmp 0x10054ce3
lea edx, [esi + ecx]
add edx, 0x68
mov dword [edx], ebx
mov dword [esi + 0xe60], edi
cmp dword [eax], 0
jle 0x10054f49
add ecx, esi
add ecx, 0x5c
xor ebx, ebx
mov ebp, dword [esp]
mov edi, dword [ecx]
add edi, ebx
mov esi, dword [esp]
mov esi, dword [esi + 0x14]
movzx esi, word [esi + edi*2]
mov edi, dword [edx]
add edi, ebx
mov word [ebp + edi*2 + 0x68c], si
mov esi, dword [esp]
inc ebx
cmp ebx, dword [eax]
jl 0x10054f27
mov edi, dword [esp + 4]
lea eax, [edi + edi]
mov ebx, dword [esi + 0x14]
mov dword [esp], eax
add ebx, eax
mov byte [esi + 0xe6e], 1
mov ebp, dword [esp + 0x14]
lea eax, [ebx + ebp*2]
push eax
push ebx
call fcn.1001d120
add esp, 8
vmovq xmm0, qword [esi + 4]
vmovd xmm1, ebp
vpinsrd xmm1, xmm1, eax, 1
vpsubd xmm0, xmm0, xmm1
vmovq qword [esi + 4], xmm0
mov ecx, dword [esi + 0x14]
lea eax, [ecx + edi*2]
movzx eax, word [eax + ebp*2]
test ax, ax
je 0x10055022
mov edx, dword [esp]
lea edx, [edx + ebp*2]
add ecx, edx
add ecx, 2
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10054fae
jmp 0x1005502a
mov edx, dword [esp + 0x10]
mov word [esi], 0
mov esi, dword [esp]
mov edi, dword [esp + 0x14]
test edi, edi
je 0x10054ff1
lea eax, [esi + edx*2]
add eax, 0x68c
mov ecx, esi
mov edx, ebx
push edi
push eax
call fcn.1005a7f0
add esp, 8
sub dword [esi + 0xe60], edi
add edi, ebx
mov dword [esi + 0x3c], edi
vmovd xmm0, dword [esi + 0xe5a]
vpcmpeqd xmm1, xmm1, xmm1
vpaddw xmm0, xmm0, xmm1
vmovd dword [esi + 0xe5a], xmm0
jmp 0x1005506e
mov edx, dword [esp + 4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
cmp eax, ecx
jle 0x1005506e
mov dword [edx], ecx
jmp 0x1005506e
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov word [ebx], 0
mov eax, edx
test ebp, ebp
je 0x10055051
lea eax, [esi + eax*2]
add eax, 0x68c
mov ecx, esi
mov edx, edi
push ebp
push eax
call fcn.1005a7f0
add esp, 8
add dword [esi + 0xe64], ebp
add ebp, edi
mov dword [esi + 0x3c], ebp
vmovd xmm0, dword [esi + 0xe5a]
vpcmpeqd xmm1, xmm1, xmm1
vpsubw xmm0, xmm0, xmm1
vmovd dword [esi + 0xe5a], xmm0
mov byte [esi + 0x52], 0
mov byte [esi + 0xe6c], 1
mov dword [esi + 0xe68], 0xbe99999a
mov ecx, dword [esp + 0x60]
xor ecx, esp
vzeroupper
call fcn.100d7fe0
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret 4
movzx ecx, word [esi + 0xe5c]
movsx ecx, cx
shl ecx, 4
mov edx, dword [esp + 4]
sub eax, edx
mov dword [ecx + edi - 4], eax
mov dword [esi + 0xe64], eax
test edx, edx
jle 0x100543a5
lea eax, [ecx + edi]
add eax, 0xfffffffc
xor ecx, ecx
cmp edx, 1
mov ebp, esi
je 0x10055111
mov edx, dword [esp + 4]
and edx, 0xfffffffe
mov ecx, dword [esp + 0x18]
lea esi, [ecx + ecx]
xor ecx, ecx
mov edi, dword [ebp + 0x14]
add edi, esi
movzx edi, word [edi + ecx*2]
mov ebx, dword [eax]
add ebx, ecx
mov word [ebp + ebx*2 + 0x68c], di
mov edi, dword [ebp + 0x14]
add edi, esi
movzx edi, word [edi + ecx*2 + 2]
mov ebx, dword [eax]
add ebx, ecx
mov word [ebp + ebx*2 + 0x68e], di
add ecx, 2
cmp edx, ecx
jne 0x100550df
mov edx, dword [esp + 4]
test dl, 1
mov esi, ebp
mov ebx, dword [esp + 0x18]
je 0x100543a5
lea edx, [ecx + ebx]
mov esi, dword [esp]
mov esi, dword [esi + 0x14]
movzx edx, word [esi + edx*2]
mov esi, dword [esp]
add ecx, dword [eax]
mov word [esi + ecx*2 + 0x68c], dx
jmp 0x100543a1