Function at 0x100d7250
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov esi, ecx
mov ebp, dword [esp + 0x6c]
mov eax, dword [0x1029f900]
xor eax, esp
mov dword [esp + 0x54], eax
lea edi, [ecx + 0x3c]
movzx eax, byte [ecx + 0x4c]
nop
lea ecx, [ebp - 0x200000]
cmp ecx, 0xd
ja case.default.0x100d727b
jmp dword [ecx*4 + 0x101512d4]
lea ecx, [ebp - 0x600000]
cmp ecx, 0xd
ja case.0x100d729f.6291466
jmp dword [ecx*4 + 0x1015130c]
and ebp, 0x400000
test al, al
je 0x100d73fc
or ebp, 0x200000
jmp 0x100d7270
and ebp, 0x400000
test al, al
je 0x100d741c
or ebp, 0x200001
jmp 0x100d7270
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x100d73ee
mov edi, dword [esi + 0x3c]
cmp edi, dword [esi + 4]
jge 0x100d8520
lea ecx, [esi + 0x54]
mov edx, edi
push 0
push 1
call fcn.100ddbe0
add esp, 8
test eax, eax
je 0x100d730d
mov ecx, dword [esi + 0x14]
movzx ecx, word [ecx + edi*2]
mov word [eax], cx
mov eax, dword [esi + 0x14]
lea ebx, [eax + edi*2]
lea eax, [eax + edi*2]
add eax, 2
push eax
push ebx
call fcn.1009bd20
add esp, 8
sub dword [esi + 8], eax
dec dword [esi + 4]
mov ecx, dword [esi + 0x14]
movzx eax, word [ecx + edi*2 + 2]
test ax, ax
je 0x100d7351
lea ecx, [ecx + edi*2]
add ecx, 4
nop dword [eax]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100d7340
mov word [ebx], 0
jmp 0x100d8520
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x100d73ee
mov ebp, edi
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x3c]
cmp edi, eax
jle 0x100d7378
mov dword [ebp], eax
mov edi, eax
test edi, edi
jle 0x100d8520
lea ebx, [edi - 1]
lea ecx, [esi + 0x54]
mov edx, ebx
push 0
push 1
call fcn.100ddbe0
add esp, 8
test eax, eax
je 0x100d73a3
mov ecx, dword [esi + 0x14]
movzx ecx, word [ecx + edi*2 - 2]
mov word [eax], cx
mov eax, dword [esi + 0x14]
lea ebx, [eax + ebx*2]
lea eax, [eax + edi*2]
push eax
push ebx
call fcn.1009bd20
add esp, 8
sub dword [esi + 8], eax
dec dword [esi + 4]
mov ecx, dword [esi + 0x14]
movzx eax, word [ecx + edi*2]
test ax, ax
je 0x100d73e1
lea ecx, [ecx + edi*2]
add ecx, 2
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100d73d0
mov word [ebx], 0
dec dword [ebp]
jmp 0x100d8520
mov ecx, esi
mov edx, edi
call fcn.100dd5e0
jmp 0x100d8520
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
test ebp, ebp
jne 0x100d781d
cmp ecx, eax
jne 0x100d7bd1
mov eax, dword [edi]
mov edx, dword [esi + 4]
jmp 0x100d7c1d
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
test ebp, ebp
jne 0x100d783c
cmp edx, eax
jne 0x100d7be7
mov eax, dword [edi]
mov ecx, dword [esi + 4]
jmp 0x100d7e49
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp edx, ecx
jne 0x100d799f
mov edx, dword [edi]
jmp 0x100d79bc
mov ecx, dword [esi + 0x40]
mov eax, dword [esi + 0x44]
cmp ecx, eax
jne 0x100d7466
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 0x100d79d6
mov edx, ecx
mov dword [esi + 0x3c], ecx
jmp 0x100d8520
mov ebp, edi
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
cmp ebx, edx
je 0x100d7a05
cmp ebx, edi
jle 0x100d79f1
mov dword [esi + 0x40], edi
mov ebx, edi
cmp edx, edi
jg 0x100d79f9
cmp ebx, edx
je 0x100d7a02
jmp 0x100d7a07
mov ebp, edi
mov ecx, dword [esi + 4]
mov edi, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
cmp edi, edx
je 0x100d7a33
cmp edi, ecx
jle 0x100d7a1f
mov dword [esi + 0x40], ecx
mov edi, ecx
cmp edx, ecx
jg 0x100d7a27
cmp edi, edx
je 0x100d7a30
jmp 0x100d7a35
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x100d74f6
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x3c], 0
jmp 0x100d8520
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x100d7517
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 0x100d8520
mov dword [esp], edi
mov ebx, dword [esi + 0x3c]
mov edi, dword [esi + 0x40]
cmp edi, dword [esi + 0x44]
jne 0x100d753b
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], ebx
mov edi, ebx
mov ebp, ebx
sar ebp, 0x1f
and ebp, ebx
dec ebp
nop word cs:[eax + eax]
test ebx, ebx
jle 0x100d792a
dec ebx
mov ecx, esi
mov edx, ebx
call fcn.100dddf0
test eax, eax
je 0x100d7550
jmp 0x100d792c
mov dword [esp], edi
mov ebx, dword [esi + 0x3c]
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x100d7581
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], ebx
mov eax, ebx
mov dword [esp + 4], eax
mov ebp, dword [esi + 4]
lea edi, [ebx + 1]
cmp ebp, edi
cmovg edi, ebp
inc ebx
cmp ebx, ebp
jge 0x100d7974
mov ecx, esi
mov edx, ebx
call fcn.100dddf0
test eax, eax
je 0x100d7590
jmp 0x100d7976
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
jne 0x100d780b
mov eax, dword [edi]
test eax, eax
jle 0x100d8520
dec eax
mov dword [edi], eax
jmp 0x100d8520
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
cmp ecx, edx
jne 0x100d7abd
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x3c]
inc eax
mov dword [esi + 0x3c], eax
jmp 0x100d7df6
mov ebp, edi
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
cmp ecx, edx
je 0x100d7ae1
cmp ecx, edi
jle 0x100d7acd
mov dword [esi + 0x40], edi
mov ecx, edi
cmp edx, edi
jg 0x100d7ad5
cmp ecx, edx
je 0x100d7ade
jmp 0x100d7ae3
mov ebp, edi
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x40]
mov edi, dword [esi + 0x44]
cmp edx, edi
je 0x100d7b5c
cmp edx, ecx
jle 0x100d7b48
mov dword [esi + 0x40], ecx
mov edx, ecx
cmp edi, ecx
jg 0x100d7b50
cmp edx, edi
je 0x100d7b59
jmp 0x100d7b5e
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
jmp 0x100d8520
mov eax, dword [esi + 4]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
jmp 0x100d8520
movsx eax, word [esi + 0xe52]
test eax, eax
je 0x100d8520
lea ebp, [esi + 0x54]
shl eax, 4
mov ecx, dword [eax + ebp - 0x10]
mov ebx, dword [eax + ebp - 0xc]
mov edi, dword [eax + ebp - 8]
mov eax, dword [eax + ebp - 4]
mov dword [esp + 4], eax
movsx eax, word [esi + 0xe54]
shl eax, 4
mov dword [eax + ebp - 4], 0xffffffff
mov dword [eax + ebp - 0xc], edi
mov dword [eax + ebp - 8], ebx
mov edx, ecx
mov dword [esp], ecx
mov dword [eax + ebp - 0x10], ecx
mov ecx, dword [esp + 4]
test edi, edi
je 0x100d84e0
mov dword [esp + 0x14], ebx
mov edx, dword [esi + 0xe58]
mov dword [esp + 0xc], edi
lea ebx, [edx + edi]
cmp ebx, 0x3e6
jle 0x100d7fb9
add eax, ebp
add eax, 0xfffffff4
mov dword [eax], 0
mov ebx, dword [esp + 0xc]
jmp 0x100d8465
movsx eax, word [esi + 0xe54]
cmp eax, 0x63
je 0x100d8520
movsx ecx, word [esi + 0xe52]
shl ecx, 4
shl eax, 4
mov ebx, dword [esi + eax + 0x54]
mov ebp, dword [esi + eax + 0x58]
mov edx, dword [esi + eax + 0x5c]
mov eax, dword [esi + eax + 0x60]
mov dword [esi + ecx + 0x5c], ebp
mov dword [esi + ecx + 0x58], edx
mov dword [esi + ecx + 0x54], ebx
mov dword [esi + ecx + 0x60], 0xffffffff
test edx, edx
je 0x100d839c
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebp
mov dword [esp], ebx
lea eax, [esi + ecx]
add eax, 0x58
mov edi, dword [esi + 0xe58]
mov dword [esp + 4], edx
lea ebx, [edi + edx]
cmp ebx, dword [esi + 0xe5c]
jle 0x100d8274
add ecx, esi
add ecx, 0x5c
mov dword [eax], 0
mov dword [ecx], 0
jmp 0x100d82ab
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp eax, ecx
jne 0x100d780b
mov edi, dword [edi]
mov ebx, edi
sar ebx, 0x1f
and ebx, edi
dec ebx
nop dword [eax + eax]
test edi, edi
jle 0x100d7daf
dec edi
mov ecx, esi
mov edx, edi
call fcn.100dddf0
test eax, eax
je 0x100d77b0
jmp 0x100d7db1
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
cmp edx, ecx
jne 0x100d7bc1
mov dword [esp], edi
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x3c]
lea ebp, [ebx + 1]
cmp edi, ebp
cmovg ebp, edi
nop word [eax + eax]
inc ebx
cmp ebx, edi
jge 0x100d7dcb
mov ecx, esi
mov edx, ebx
call fcn.100dddf0
test eax, eax
je 0x100d77f0
jmp 0x100d7dcd
jle 0x100d7812
mov dword [esi + 0x40], ecx
mov eax, ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x44], eax
jmp 0x100d8520
cmp ecx, eax
jne 0x100d7bf7
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov edx, dword [esi + 4]
mov dword [esp + 8], eax
mov ecx, eax
jmp 0x100d7c21
cmp edx, eax
jne 0x100d7d41
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov ecx, dword [esi + 4]
mov dword [esp + 8], eax
mov edx, eax
jmp 0x100d7e4d
xor ecx, ecx
cmp ebp, 0x200000
cmovl ecx, ebp
test ecx, ecx
jle 0x100d8524
mov word [esp + 0x3c], cx
cmp ecx, 0xa
jne 0x100d7880
test al, al
jne 0x100d8524
cmp byte [esi + 0x48], 0
je 0x100d7f7a
mov eax, dword [esi + 0x40]
cmp eax, dword [esi + 0x44]
jne 0x100d7f7a
mov ebx, dword [esi + 0x3c]
cmp ebx, dword [esi + 4]
jge 0x100d7f7a
lea ecx, [esi + 0x54]
mov edx, ebx
push 1
push 1
call fcn.100ddbe0
add esp, 8
test eax, eax
je 0x100d78c1
mov ecx, dword [esi + 0x14]
movzx ecx, word [ecx + ebx*2]
mov word [eax], cx
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x3c]
lea edi, [eax + ebx*2]
lea eax, [eax + ebx*2]
add eax, 2
push eax
push edi
call fcn.1009bd20
add esp, 8
sub dword [esi + 8], eax
dec dword [esi + 4]
mov ecx, dword [esi + 0x14]
movzx eax, word [ecx + ebx*2 + 2]
test ax, ax
je 0x100d7904
lea ecx, [ecx + ebx*2]
add ecx, 4
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100d78f3
mov word [edi], 0
mov edx, dword [esi + 0x3c]
lea eax, [esp + 0x3c]
mov ecx, esi
push 1
push eax
call fcn.100dd480
add esp, 8
test al, al
jne 0x100d7fb1
jmp 0x100d8524
mov ebx, ebp
mov eax, ebx
sar eax, 0x1f
andn ecx, eax, ebx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x44], ecx
mov eax, dword [esi + 4]
cmp edi, ecx
je 0x100d7960
cmp edi, eax
jle 0x100d794c
mov dword [esi + 0x40], eax
mov edi, eax
mov edx, ecx
cmp ecx, eax
jle 0x100d7957
mov dword [esi + 0x44], eax
mov edx, eax
cmp edi, edx
jne 0x100d7962
mov ecx, dword [esp]
mov dword [ecx], edi
mov ecx, edi
cmp ecx, eax
mov ecx, dword [esp]
jle 0x100d8524
mov dword [ecx], eax
jmp 0x100d8524
mov ebx, edi
cmp ebx, ebp
cmovge ebx, ebp
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x44], ebx
mov ecx, dword [esp + 4]
cmp ecx, ebx
jne 0x100d7a4d
cmp ecx, ebp
mov eax, dword [esp]
jle 0x100d8524
mov dword [eax], ebp
jmp 0x100d8524
cmp edx, eax
jle 0x100d7a68
mov dword [esi + 0x40], eax
mov edx, eax
cmp ecx, eax
jg 0x100d7a70
cmp edx, ecx
jne 0x100d7a7d
cmp edx, eax
cmovl eax, edx
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], eax
mov ecx, eax
test ecx, ecx
jg 0x100d7a81
jmp 0x100d7a85
mov edi, dword [esi + 4]
cmp ecx, edi
jle 0x100d79e0
mov dword [esi + 0x40], edi
cmp eax, edi
jl 0x100d79e9
mov dword [esi + 0x44], edi
mov edx, edi
mov dword [esi + 0x3c], edx
jmp 0x100d8520
cmp edx, edi
jle 0x100d74a6
mov dword [esi + 0x44], edi
mov edx, edi
cmp ebx, edx
jne 0x100d7a07
mov dword [ebp], ebx
mov edx, ebx
mov ecx, dword [ebp]
cmp ecx, edi
jle 0x100d7a13
mov dword [ebp], edi
mov ecx, edi
cmp ebx, edx
jne 0x100d7a8d
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
jmp 0x100d7a92
cmp edx, ecx
jle 0x100d74db
mov dword [esi + 0x44], ecx
mov edx, ecx
cmp edi, edx
jne 0x100d7a35
mov dword [ebp], edi
mov edx, edi
mov ebx, dword [ebp]
cmp ebx, ecx
jle 0x100d7a41
mov dword [ebp], ecx
mov ebx, ecx
cmp edi, edx
jne 0x100d7aa8
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], ebx
jmp 0x100d7aad
cmp ecx, ebp
mov eax, dword [esp]
jle 0x100d7a59
mov dword [esi + 0x40], ebp
mov ecx, ebp
cmp ecx, ebx
jne 0x100d8524
mov dword [eax], ebx
jmp 0x100d8524
cmp ecx, eax
jle 0x100d79b4
mov dword [esi + 0x44], eax
mov ecx, eax
cmp edx, ecx
je 0x100d79bc
test ecx, ecx
jle 0x100d7a85
dec ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x3c], ecx
jmp 0x100d8520
mov dword [ebp], edx
mov ecx, edx
test al, al
je 0x100d7d6e
mov dword [ebp], 0
xor ecx, ecx
jmp 0x100d7da7
mov dword [ebp], edx
mov ebx, edx
test al, al
je 0x100d7d8d
mov dword [ebp], ecx
jmp 0x100d7da7
jle 0x100d7ddc
mov dword [esi + 0x44], ecx
mov eax, ecx
jmp 0x100d7de0
cmp edx, edi
jle 0x100d7610
mov dword [esi + 0x44], edi
mov edx, edi
cmp ecx, edx
jne 0x100d7ae3
mov dword [ebp], ecx
mov edx, ecx
mov ebx, dword [ebp]
cmp ebx, edi
jle 0x100d7b34
mov dword [ebp], edi
mov ebx, edi
cmp ecx, edx
je 0x100d7b38
jle 0x100d7afa
mov dword [esi + 0x40], edx
mov ecx, edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x44], ecx
mov byte [esi + 0x4b], 0
mov ebx, ecx
test al, al
jne 0x100d7b3c
test ebx, ebx
jle 0x100d8520
mov eax, dword [esi + 0x14]
dec ebx
cmp word [eax + ebx*2], 0xa
je 0x100d8520
mov dword [ebp], ebx
lea ecx, [ebx - 1]
inc ebx
cmp ebx, 1
mov ebx, ecx
ja 0x100d7b16
jmp 0x100d8520
cmp ecx, edx
jne 0x100d7af3
test al, al
je 0x100d7b0a
mov dword [ebp], 0
jmp 0x100d8520
cmp edi, ecx
jle 0x100d7645
mov dword [esi + 0x44], ecx
mov edi, ecx
cmp edx, edi
jne 0x100d7b5e
mov dword [ebp], edx
mov edi, edx
mov ebx, dword [ebp]
cmp ebx, ecx
jle 0x100d7bb1
mov dword [ebp], ecx
mov ebx, ecx
cmp edx, edi
je 0x100d7bb5
jle 0x100d7b75
mov dword [esi + 0x40], edi
mov edx, edi
mov dword [esi + 0x3c], edx
mov dword [esi + 0x44], edx
mov byte [esi + 0x4b], 0
mov ebx, edx
test al, al
jne 0x100d7bb9
cmp ebx, ecx
jge 0x100d8520
mov eax, dword [esi + 0x14]
neg ecx
inc ebx
cmp word [eax + ebx*2 - 2], 0xa
je 0x100d8520
mov dword [ebp], ebx
lea edx, [ecx + ebx]
inc edx
inc ebx
cmp edx, 1
jne 0x100d7b93
jmp 0x100d8520
cmp edx, edi
jne 0x100d7b6e
test al, al
je 0x100d7b85
mov dword [ebp], ecx
jmp 0x100d8520
jle 0x100d7e05
mov dword [esi + 0x44], edx
mov eax, edx
jmp 0x100d7e09
jle 0x100d7bd8
mov dword [esi + 0x40], eax
mov ecx, eax
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x44], ecx
mov byte [esi + 0x4b], 0
mov edx, dword [esi + 4]
jmp 0x100d7c1b
jle 0x100d7e24
mov dword [esi + 0x44], edx
mov ecx, edx
jmp 0x100d7e28
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 4]
cmp ecx, edx
jle 0x100d7c06
mov dword [esi + 0x40], edx
mov ecx, edx
mov ebx, eax
cmp eax, edx
jle 0x100d7c11
mov dword [esi + 0x44], edx
mov ebx, edx
mov dword [esp + 8], ebx
cmp ecx, ebx
jne 0x100d7c21
mov dword [edi], ecx
mov eax, ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x1c], ecx
cmp eax, edx
jle 0x100d7c2d
mov dword [edi], edx
mov eax, edx
mov dword [esp + 0x10], edx
lea ebx, [esp + 0x3c]
mov ecx, ebx
mov edx, esi
push 0
push eax
call fcn.100dd8d0
add esp, 8
mov edx, dword [esp + 0x50]
cmp edx, dword [esp + 0x48]
je 0x100d8524
mov dword [esp], edi
lea ecx, [esi + 0x50]
cmp byte [esi + 0x4b], 0
cmove ecx, ebx
vmovss xmm0, dword [ecx]
mov dword [esi + 0x3c], edx
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x10]
lea edi, [ecx + eax*2]
mov dword [esp + 4], edx
mov dword [esp + 0x14], ecx
lea edx, [ecx + edx*2]
mov ebx, edx
nop dword [eax]
cmp ebx, edi
jae 0x100d7c91
lea ecx, [ebx + 2]
cmp word [ebx], 0xa
mov ebx, ecx
jne 0x100d7c80
jmp 0x100d7c93
mov ecx, ebx
sub ecx, edx
test ecx, ecx
mov eax, dword [esp]
jle 0x100d8328
shr ecx, 1
cmp ecx, 2
mov edx, 1
cmovge edx, ecx
vxorps xmm1, xmm1, xmm1
mov ecx, dword [0x102a05a0]
mov dword [esp + 0x18], ecx
vmovss xmm2, dword [0x10145a68]
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + ebx*2]
cmp ecx, 0xa
je 0x100d832c
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov eax, esi
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x18d0]
lea edi, [ecx*4]
add edi, dword [esi + 8]
lea ebx, [esi + 0xc]
cmp dword [esi], ecx
cmovg ebx, edi
vmovss xmm3, dword [edx + 0x18d4]
vdivss xmm3, xmm3, dword [esi + 0x10]
vmulss xmm3, xmm3, dword [ebx]
vucomiss xmm3, xmm2
jne 0x100d7d1b
jnp 0x100d8323
vaddss xmm1, xmm1, xmm3
vucomiss xmm1, xmm0
mov esi, eax
mov eax, dword [esp]
mov ebx, dword [esp + 4]
ja 0x100d832c
inc ebx
mov dword [eax], ebx
mov edx, dword [esp + 0xc]
dec edx
jne 0x100d7cc7
jmp 0x100d832c
mov dword [esi + 0x3c], eax
mov ecx, dword [esi + 4]
cmp edx, ecx
jle 0x100d7d50
mov dword [esi + 0x40], ecx
mov edx, ecx
mov ebx, eax
cmp eax, ecx
jle 0x100d7d5b
mov dword [esi + 0x44], ecx
mov ebx, ecx
mov dword [esp + 8], ebx
cmp edx, ebx
jne 0x100d7e4d
mov dword [edi], edx
jmp 0x100d7e47
test ecx, ecx
jle 0x100d7da7
mov eax, dword [esi + 0x14]
cmp word [eax + ecx*2 - 2], 0xa
je 0x100d7da7
dec ecx
mov dword [ebp], ecx
mov edx, ecx
inc edx
cmp edx, 1
ja 0x100d7d75
xor ecx, ecx
jmp 0x100d7da7
cmp ebx, ecx
jge 0x100d7da5
mov eax, dword [esi + 0x14]
cmp word [eax + ebx*2], 0xa
je 0x100d7da5
inc ebx
mov dword [ebp], ebx
cmp ecx, ebx
jne 0x100d7d94
jmp 0x100d7da7
mov ecx, ebx
mov dword [esi + 0x44], ecx
jmp 0x100d8520
mov edi, ebx
mov eax, edi
sar eax, 0x1f
andn eax, eax, edi
mov ecx, dword [esi + 4]
cmp eax, ecx
cmovl ecx, eax
mov dword [esi + 0x3c], ecx
jmp 0x100d8524
mov ebx, ebp
cmp ebx, edi
cmovl edi, ebx
mov eax, dword [esp]
mov dword [eax], edi
jmp 0x100d8524
mov eax, edx
mov edx, ecx
mov ecx, dword [esi + 4]
cmp edx, eax
je 0x100d7df0
cmp eax, ecx
jle 0x100d7df0
mov dword [esi + 0x44], ecx
mov eax, ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
cmp eax, ecx
jle 0x100d8520
mov dword [edi], ecx
jmp 0x100d8520
mov eax, ecx
mov ecx, edx
cmp ecx, eax
je 0x100d7e19
mov ecx, dword [esi + 4]
cmp eax, ecx
jle 0x100d7e19
mov dword [esi + 0x44], ecx
mov eax, ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
jmp 0x100d8520
mov ecx, eax
mov eax, edx
cmp eax, ecx
je 0x100d7e38
mov eax, dword [esi + 4]
cmp ecx, eax
jle 0x100d7e38
mov dword [esi + 0x44], eax
mov ecx, eax
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], ecx
mov byte [esi + 0x4b], 0
mov edx, ecx
mov ecx, dword [esi + 4]
mov eax, edx
mov dword [esp + 8], edx
mov dword [esp + 0x1c], edx
cmp eax, ecx
jle 0x100d7e59
mov dword [edi], ecx
mov eax, ecx
mov dword [esp + 0x10], ecx
lea ebx, [esp + 0x3c]
mov ecx, ebx
mov edx, esi
push 0
push eax
call fcn.100dd8d0
add esp, 8
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x100d8524
mov dword [esp], edi
lea ecx, [esi + 0x50]
cmp byte [esi + 0x4b], 0
cmove ecx, ebx
vmovss xmm0, dword [ecx]
add edx, dword [esp + 0x48]
mov dword [esi + 0x3c], edx
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x10]
lea edi, [ecx + eax*2]
mov dword [esp + 4], edx
mov dword [esp + 0x14], ecx
lea edx, [ecx + edx*2]
mov ebx, edx
nop dword [eax + eax]
cmp ebx, edi
jae 0x100d7ec1
lea ecx, [ebx + 2]
cmp word [ebx], 0xa
mov ebx, ecx
jne 0x100d7eb0
jmp 0x100d7ec3
mov ecx, ebx
sub ecx, edx
test ecx, ecx
mov eax, dword [esp]
jle 0x100d8218
shr ecx, 1
cmp ecx, 2
mov edx, 1
cmovge edx, ecx
vxorps xmm1, xmm1, xmm1
mov ecx, dword [0x102a05a0]
mov dword [esp + 0x18], ecx
vmovss xmm2, dword [0x10145a68]
mov ebx, dword [esp + 4]
nop word [eax + eax]
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + ebx*2]
cmp ecx, 0xa
je 0x100d821c
mov dword [esp + 0xc], edx
mov dword [esp + 4], ebx
mov eax, esi
mov edx, dword [esp + 0x18]
mov edi, dword [edx + 0x18d0]
lea esi, [ecx*4]
add esi, dword [edi + 8]
lea ebx, [edi + 0xc]
cmp dword [edi], ecx
cmovg ebx, esi
vmovss xmm3, dword [edx + 0x18d4]
vdivss xmm3, xmm3, dword [edi + 0x10]
vmulss xmm3, xmm3, dword [ebx]
vucomiss xmm3, xmm2
jne 0x100d7f54
jnp 0x100d8213
vaddss xmm1, xmm1, xmm3
vucomiss xmm1, xmm0
mov esi, eax
mov eax, dword [esp]
mov ebx, dword [esp + 4]
ja 0x100d821c
inc ebx
mov dword [eax], ebx
mov edx, dword [esp + 0xc]
dec edx
jne 0x100d7f00
jmp 0x100d821c
mov ecx, esi
mov edx, edi
call fcn.100dd5e0
mov edx, dword [esi + 0x3c]
lea eax, [esp + 0x3c]
mov ecx, esi
push 1
push eax
call fcn.100dd480
add esp, 8
test al, al
je 0x100d8524
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x54]
push 1
push 0
call fcn.100ddbe0
add esp, 8
inc dword [esi + 0x3c]
jmp 0x100d8520
mov eax, dword [esi + 0xe5c]
movzx ecx, word [esi + 0xe54]
cmp ebx, eax
jle 0x100d83de
lea edi, [esi + 0x684]
mov dword [esp + 0x10], edi
lea edi, [esi + 0x60]
mov dword [esp + 8], edi
vpbroadcastq ymm0, qword [0x10151100]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x18], ebp
vmovdqu ymmword [esp + 0x1c], ymm0
jmp 0x100d8041
movsx edi, cx
shl edi, 4
mov eax, 0x620
sub eax, edi
lea ecx, [edi + ebp]
lea edx, [edi + ebp]
add edx, 0x10
push eax
push ecx
push edx
vzeroupper
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ecx, dword [esi + 0xe54]
mov edx, dword [esi + 0xe58]
inc ecx
mov word [esi + 0xe54], cx
mov eax, dword [esi + 0xe5c]
lea edi, [edx + ebx]
cmp edi, eax
jle 0x100d83e2
cmp cx, 0x63
je 0x100d8520
jge 0x100d8036
cmp dword [esi + 0x680], 0
js 0x100d7ff8
mov ebp, dword [esi + 0x678]
lea ecx, [eax + ebp]
mov dword [esi + 0xe5c], ecx
mov edi, dword [esp + 0x10]
lea edx, [edi + ecx*2]
lea eax, [edi + eax*2]
add ecx, ecx
mov ebx, 0x7ce
sub ebx, ecx
push ebx
push eax
push edx
vzeroupper
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
movsx edi, word [esi + 0xe54]
cmp edi, 0x61
jg 0x100d80e2
mov eax, 0x62
sub eax, edi
mov ecx, edi
cmp eax, 9
vmovdqu ymm3, ymmword [esp + 0x1c]
vpbroadcastq xmm4, qword [0x10151100]
vpcmpeqd xmm5, xmm5, xmm5
jae 0x100d80ef
lea eax, [ecx - 0x62]
shl ecx, 4
add ecx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
jmp 0x100d80d6
add ecx, 0x10
inc eax
je 0x100d80e6
mov edx, dword [ecx]
test edx, edx
js 0x100d80d0
add edx, ebp
mov dword [ecx], edx
jmp 0x100d80d0
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x18]
jmp 0x100d7ffb
mov edx, eax
and edx, 7
mov ecx, 8
cmove edx, ecx
sub eax, edx
mov ecx, eax
add ecx, edi
add edx, edi
add edx, 0xffffff9e
mov eax, edi
shl eax, 4
add eax, dword [esp + 8]
jmp 0x100d811a
sub eax, 0xffffff80
add edx, 8
je 0x100d80b3
vpermd ymm0, ymm3, ymmword [eax + 0x60]
vpermd ymm1, ymm3, ymmword [eax + 0x40]
vmovdqu xmm2, xmmword [eax]
vpunpckldq xmm2, xmm2, xmmword [eax + 0x10]
vpblendd ymm0, ymm1, ymm0, 0xc0
vpermd ymm1, ymm4, ymmword [eax + 0x20]
vpblendd xmm1, xmm2, xmm1, 0xc
vpblendd ymm0, ymm1, ymm0, 0xf0
vpcmpgtd xmm1, xmm1, xmm5
vmovd ebx, xmm1
test bl, 1
je 0x100d815c
vmovd ebx, xmm0
add ebx, ebp
mov dword [eax], ebx
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 4
test bl, 1
je 0x100d8176
vpextrd ebx, xmm0, 1
add ebx, ebp
mov dword [eax + 0x10], ebx
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 8
test bl, 1
je 0x100d8190
vpextrd ebx, xmm0, 2
add ebx, ebp
mov dword [eax + 0x20], ebx
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 0xc
test bl, 1
je 0x100d81aa
vpextrd ebx, xmm0, 3
add ebx, ebp
mov dword [eax + 0x30], ebx
vextracti128 xmm0, ymm0, 1
vpcmpgtd xmm1, xmm0, xmm5
vpextrb ebx, xmm1, 0
test bl, 1
je 0x100d81c8
vmovd ebx, xmm0
add ebx, ebp
mov dword [eax + 0x40], ebx
vpextrb ebx, xmm1, 4
test bl, 1
je 0x100d81de
vpextrd ebx, xmm0, 1
add ebx, ebp
mov dword [eax + 0x50], ebx
vpextrb ebx, xmm1, 8
test bl, 1
je 0x100d81f4
vpextrd ebx, xmm0, 2
add ebx, ebp
mov dword [eax + 0x60], ebx
vpextrb ebx, xmm1, 0xc
test bl, 1
je 0x100d8112
vpextrd ebx, xmm0, 3
add ebx, ebp
mov dword [eax + 0x70], ebx
jmp 0x100d8112
mov esi, eax
mov eax, dword [esp]
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 8]
jne 0x100d8233
mov ecx, dword [esp + 0x10]
cmp ebx, ecx
jg 0x100d826b
jmp 0x100d8366
mov ecx, dword [esp + 0x10]
cmp edx, ecx
jle 0x100d8240
mov dword [esi + 0x40], ecx
mov edx, ecx
mov edi, dword [esp + 8]
cmp edi, ecx
jle 0x100d825b
mov dword [esi + 0x44], ecx
mov edi, ecx
cmp edx, edi
je 0x100d825f
cmp ebx, ecx
jle 0x100d8366
jmp 0x100d826b
cmp edx, edi
jne 0x100d8251
mov dword [eax], edx
mov ebx, edx
cmp ebx, ecx
jle 0x100d8366
mov dword [eax], ecx
mov ebx, ecx
jmp 0x100d8366
lea edx, [esi + ecx]
add edx, 0x60
mov dword [edx], edi
mov dword [esi + 0xe58], ebx
cmp dword [eax], 0
jle 0x100d82ab
add ecx, esi
add ecx, 0x54
xor edi, edi
mov ebx, dword [ecx]
add ebx, edi
mov ebp, dword [esi + 0x14]
movzx ebx, word [ebp + ebx*2]
mov ebp, dword [edx]
add ebp, edi
mov word [esi + ebp*2 + 0x684], bx
inc edi
cmp edi, dword [eax]
jl 0x100d828e
mov ebx, dword [esp]
lea eax, [ebx + ebx]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x18], eax
add edi, eax
mov ebp, dword [esp + 4]
lea eax, [edi + ebp*2]
push eax
push edi
call fcn.1009bd20
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 + ebx*2]
movzx eax, word [eax + ebp*2]
test ax, ax
je 0x100d838d
mov edx, dword [esp + 0x18]
lea edx, [edx + ebp*2]
add ecx, edx
add ecx, 2
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
nop word [eax + eax]
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100d8310
jmp 0x100d8395
mov esi, eax
mov eax, dword [esp]
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 8]
jne 0x100d8340
mov edx, dword [esp + 0x10]
cmp ebx, edx
jle 0x100d8366
jmp 0x100d8362
mov edx, dword [esp + 0x10]
cmp ecx, edx
jle 0x100d834d
mov dword [esi + 0x40], edx
mov ecx, edx
mov edi, dword [esp + 8]
cmp edi, edx
jle 0x100d837f
mov dword [esi + 0x44], edx
mov edi, edx
cmp ecx, edi
je 0x100d8383
cmp ebx, edx
jle 0x100d8366
mov dword [eax], edx
mov ebx, edx
mov byte [esi + 0x4b], 1
vmovss dword [esi + 0x50], xmm0
test ebp, ebp
je 0x100d8524
mov dword [esi + 0x44], ebx
jmp 0x100d8524
cmp ecx, edi
jne 0x100d835e
mov dword [eax], ecx
mov ebx, ecx
cmp ebx, edx
jle 0x100d8366
jmp 0x100d8362
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov word [edi], 0
mov eax, edx
test ebp, ebp
je 0x100d83bc
lea eax, [esi + eax*2]
add eax, 0x684
mov ecx, esi
mov edx, ebx
push ebp
push eax
call fcn.100dd480
add esp, 8
add dword [esi + 0xe5c], ebp
add ebp, ebx
mov dword [esi + 0x3c], ebp
vmovd xmm0, dword [esi + 0xe52]
vpcmpeqd xmm1, xmm1, xmm1
vpsubw xmm0, xmm0, xmm1
vmovd dword [esi + 0xe52], xmm0
jmp 0x100d8520
mov ebx, dword [esp + 0xc]
movsx ecx, cx
shl ecx, 4
sub eax, ebx
mov dword [ecx + ebp - 4], eax
mov dword [esi + 0xe5c], eax
test ebx, ebx
jle 0x100d8465
lea eax, [ecx + ebp]
add eax, 0xfffffffc
xor ecx, ecx
cmp ebx, 1
je 0x100d8446
mov edx, dword [esp + 0xc]
and edx, 0xfffffffe
mov ecx, dword [esp]
lea edi, [ecx + ecx]
xor ecx, ecx
mov ebx, dword [esi + 0x14]
add ebx, edi
movzx ebx, word [ebx + ecx*2]
mov ebp, dword [eax]
add ebp, ecx
mov word [esi + ebp*2 + 0x684], bx
mov ebx, dword [esi + 0x14]
add ebx, edi
movzx ebx, word [ebx + ecx*2 + 2]
mov ebp, dword [eax]
add ebp, ecx
mov word [esi + ebp*2 + 0x686], bx
add ecx, 2
cmp edx, ecx
jne 0x100d8414
mov ebx, dword [esp + 0xc]
test bl, 1
je 0x100d8465
mov edx, dword [esp]
add edx, ecx
mov edi, dword [esi + 0x14]
movzx edx, word [edi + edx*2]
add ecx, dword [eax]
mov word [esi + ecx*2 + 0x684], dx
mov ebp, dword [esp]
lea eax, [ebp*2]
mov edi, dword [esi + 0x14]
mov dword [esp + 0xc], eax
add edi, eax
lea eax, [edi + ebx*2]
push eax
push edi
vzeroupper
call fcn.1009bd20
add esp, 8
vmovq xmm0, qword [esi + 4]
vmovd xmm1, ebx
vpinsrd xmm1, xmm1, eax, 1
vpsubd xmm0, xmm0, xmm1
vmovq qword [esi + 4], xmm0
mov ecx, dword [esi + 0x14]
lea eax, [ecx + ebp*2]
movzx eax, word [eax + ebx*2]
test ax, ax
je 0x100d84d3
mov edx, dword [esp + 0xc]
lea edx, [edx + ebx*2]
add ecx, edx
add ecx, 2
mov ebx, dword [esp + 0x14]
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100d84c0
jmp 0x100d84d7
mov ebx, dword [esp + 0x14]
mov word [edi], 0
mov ecx, dword [esp + 4]
test ebx, ebx
mov edi, dword [esp]
je 0x100d8503
lea eax, [esi + ecx*2]
add eax, 0x684
mov ecx, esi
mov edx, edi
push ebx
push eax
call fcn.100dd480
add esp, 8
sub dword [esi + 0xe58], ebx
add ebx, edi
mov dword [esi + 0x3c], ebx
vmovd xmm0, dword [esi + 0xe52]
vpcmpeqd xmm1, xmm1, xmm1
vpaddw xmm0, xmm0, xmm1
vmovd dword [esi + 0xe52], xmm0
mov byte [esi + 0x4b], 0
mov byte [esi + 0xe64], 1
mov dword [esi + 0xe60], 0xbe99999a
mov ecx, dword [esp + 0x54]
xor ecx, esp
vzeroupper
call fcn.100e81f3
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret 4