Function at 0x100d4610
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1015da41
mov eax, dword fs:[0]
push eax
mov eax, 0x1a00
call fcn.10153400
mov eax, dword [0x101e5040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x19dc], ecx
mov ecx, dword [ebp + 8]
xorps xmm0, xmm0
mov dword [ebp - 0x19a4], 0
mov eax, 0xf
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x19bc], ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x44], 0
mov dword [ebp - 4], 0
test ecx, ecx
je 0x100d5988
cmp dword [0x10429d7c], 0
je 0x100d5988
mov eax, dword [0x105487ac]
mov edi, dword [ecx + 8]
test al, 1
jne 0x100d46da
or eax, 1
mov dword [0x105487ac], eax
mov edx, 0x990704d7
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x19c8]
call fcn.1005d980
push 0xda7d68cb
mov edx, eax
mov ecx, 0x105487b0
call fcn.1005ddd0
push 0x1015f630
call fcn.10152d1f
add esp, 8
mov byte [ebp - 4], 0
mov eax, dword [0x105487b0]
call eax
mov esi, eax
mov dword [ebp - 0x19a8], esi
test edi, edi
je 0x100d476c
test esi, esi
je 0x100d476c
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x19a4], ecx
test ecx, ecx
je 0x100d476c
nop
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100d4749
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d4720
xor edx, edx
test ecx, ecx
je 0x100d4749
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d4730
cmp edi, 0xd791104e
je 0x100d4764
mov ecx, dword [ebp - 0x19a4]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x19a4], ecx
test ecx, ecx
je 0x100d476c
mov esi, dword [ebp - 0x19a8]
jmp 0x100d4700
mov ecx, dword [ebp - 0x19a4]
jmp 0x100d476e
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x100d4778.2
jmp dword [eax*4 + 0x100d59e4]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov edx, eax
jmp 0x100d47d7
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov edx, eax
jmp 0x100d47d7
movss xmm0, dword [ecx + 0xc]
sub esp, 8
movss dword [ebp - 0x19a8], xmm0
fld dword [ebp - 0x19a8]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [ebp - 0x19a8]
cvttss2si edx, dword [ebp - 0x19a8]
add esp, 8
jmp 0x100d47d7
xor edx, edx
jmp 0x100d47d7
mov edx, dword [ecx + 0xc]
mov ecx, dword [0x105408f0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov edi, dword [ebp - 0x19bc]
mov ecx, dword [0x105487ac]
mov dword [ebp - 0x19a0], eax
mov edi, dword [edi + 8]
test cl, 1
jne 0x100d483e
or ecx, 1
mov dword [0x105487ac], ecx
mov edx, 0x990704d7
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x19c8]
call fcn.1005d980
push 0xda7d68cb
mov edx, eax
mov ecx, 0x105487b0
call fcn.1005ddd0
push 0x1015f630
call fcn.10152d1f
add esp, 8
mov byte [ebp - 4], 0
mov eax, dword [0x105487b0]
call eax
mov esi, eax
mov dword [ebp - 0x19a8], esi
test edi, edi
je 0x100d48cc
test esi, esi
je 0x100d48cc
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x19a4], ecx
test ecx, ecx
je 0x100d48cc
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100d48a9
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d4880
xor edx, edx
test ecx, ecx
je 0x100d48a9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d4890
cmp edi, 0x11ab48ff
je 0x100d48c4
mov ecx, dword [ebp - 0x19a4]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x19a4], ecx
test ecx, ecx
je 0x100d48cc
mov esi, dword [ebp - 0x19a8]
jmp 0x100d4862
mov ecx, dword [ebp - 0x19a4]
jmp 0x100d48ce
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x100d48d8.2
jmp dword [eax*4 + 0x100d5a00]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov edx, eax
jmp 0x100d4937
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov edx, eax
jmp 0x100d4937
movss xmm0, dword [ecx + 0xc]
sub esp, 8
movss dword [ebp - 0x19a8], xmm0
fld dword [ebp - 0x19a8]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [ebp - 0x19a8]
cvttss2si edx, dword [ebp - 0x19a8]
add esp, 8
jmp 0x100d4937
xor edx, edx
jmp 0x100d4937
mov edx, dword [ecx + 0xc]
mov ecx, dword [0x105408f0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov esi, dword [ebp - 0x19a0]
mov edi, eax
mov dword [ebp - 0x19a8], edi
lea ecx, [esi - 1]
cmp ecx, 0x3f
ja 0x100d5985
lea ecx, [edi - 1]
cmp ecx, 0x3f
ja 0x100d5985
mov ecx, dword [0x105408f0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
cmp esi, eax
jne 0x100d5985
mov ecx, dword [0x105408f0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
cmp edi, eax
je 0x100d5985
mov eax, dword [ebp - 0x19bc]
mov edi, dword [eax + 8]
mov eax, dword [0x105487ac]
test al, 1
jne 0x100d49e5
or eax, 1
mov dword [0x105487ac], eax
mov edx, 0x990704d7
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x19c8]
call fcn.1005d980
push 0xda7d68cb
mov edx, eax
mov ecx, 0x105487b0
call fcn.1005ddd0
push 0x1015f630
call fcn.10152d1f
add esp, 8
mov byte [ebp - 4], 0
mov eax, dword [0x105487b0]
call eax
mov esi, eax
mov dword [ebp - 0x19a0], esi
test edi, edi
je 0x100d4a7c
test esi, esi
je 0x100d4a7c
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x19a4], ecx
test ecx, ecx
je 0x100d4a7c
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100d4a59
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d4a30
xor edx, edx
test ecx, ecx
je 0x100d4a59
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d4a40
cmp edi, 0x2a7e565d
je 0x100d4a74
mov ecx, dword [ebp - 0x19a4]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x19a4], ecx
test ecx, ecx
je 0x100d4a7c
mov esi, dword [ebp - 0x19a0]
jmp 0x100d4a11
mov ecx, dword [ebp - 0x19a4]
jmp 0x100d4a7e
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x100d4a88.2
jmp dword [eax*4 + 0x100d5a1c]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov esi, eax
jmp 0x100d4af5
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov dword [ebp - 0x19ac], eax
mov esi, eax
jmp 0x100d4afb
movss xmm0, dword [ecx + 0xc]
sub esp, 8
movss dword [ebp - 0x19a4], xmm0
fld dword [ebp - 0x19a4]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [ebp - 0x19a4]
cvttss2si esi, dword [ebp - 0x19a4]
add esp, 8
jmp 0x100d4af5
mov dword [ebp - 0x19ac], 0
jmp 0x100d4b04
mov esi, dword [ecx + 0xc]
mov dword [ebp - 0x19ac], esi
cmp esi, 0xa
je 0x100d5985
mov ecx, dword [0x105408f4]
mov esi, dword [ebp - 0x19a8]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x19d8], eax
test eax, eax
je 0x100d5985
mov ecx, dword [0x105408f0]
lea eax, [ebp - 0x19c]
push eax
push esi
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
call edx
test al, al
je 0x100d5985
xorps xmm0, xmm0
mov dword [ebp - 0x19e4], 0
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x19e0], 0
movups xmmword [ebp - 0x19f4], xmm0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d4b70
sub ecx, edx
lea eax, [ebp - 0x18c]
push ecx
push eax
lea ecx, [ebp - 0x19f4]
call fcn.10035df0
mov byte [ebp - 4], 4
lea eax, [ebp - 0x19f4]
mov ecx, 0x18
mov dword [ebp - 0x19c4], 0
cmp dword [ebp - 0x19e4], ecx
xorps xmm0, xmm0
movups xmmword [ebp - 0x19d4], xmm0
cmovb ecx, dword [ebp - 0x19e4]
cmp dword [ebp - 0x19e0], 0xf
push ecx
cmova eax, dword [ebp - 0x19f4]
lea ecx, [ebp - 0x19d4]
push eax
mov dword [ebp - 0x19c0], 0
call fcn.10035df0
lea eax, [ebp - 0x19d4]
mov dword [ebp - 0x19a4], 1
push eax
lea ecx, [ebp - 0x44]
call fcn.10035210
mov ecx, dword [ebp - 0x19c0]
cmp ecx, 0xf
jbe 0x100d4c34
mov edx, dword [ebp - 0x19d4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d4c2a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d59ad
push ecx
push edx
call fcn.10152d39
add esp, 8
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x19e0]
cmp ecx, 0xf
jbe 0x100d4c72
mov edx, dword [ebp - 0x19f4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d4c68
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d59ad
push ecx
push edx
call fcn.10152d39
add esp, 8
mov eax, dword [ebp - 0x19bc]
mov edi, dword [eax + 8]
mov eax, dword [0x105487ac]
test al, 1
jne 0x100d4cc2
or eax, 1
mov dword [0x105487ac], eax
mov edx, 0x990704d7
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x19c8]
call fcn.1005d980
push 0xda7d68cb
mov edx, eax
mov ecx, 0x105487b0
call fcn.1005ddd0
push 0x1015f630
call fcn.10152d1f
add esp, 8
mov byte [ebp - 4], 0
mov eax, dword [0x105487b0]
call eax
mov esi, eax
mov dword [ebp - 0x19b0], esi
test edi, edi
je 0x100d4d5c
test esi, esi
je 0x100d4d5c
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x19a0], ecx
test ecx, ecx
je 0x100d4d5c
nop word [eax + eax]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100d4d39
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [esi + ecx], 0
jne 0x100d4d10
xor edx, edx
test ecx, ecx
je 0x100d4d39
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d4d20
cmp edi, 0xa0d9523e
je 0x100d4d54
mov ecx, dword [ebp - 0x19a0]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x19a0], ecx
test ecx, ecx
je 0x100d4d5c
mov esi, dword [ebp - 0x19b0]
jmp 0x100d4cf0
mov ecx, dword [ebp - 0x19a0]
jmp 0x100d4d5e
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x100d4d68.2
jmp dword [eax*4 + 0x100d5a38]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
jmp 0x100d4dc3
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
jmp 0x100d4dc3
movss xmm0, dword [ecx + 0xc]
sub esp, 8
movss dword [ebp - 0x19a0], xmm0
fld dword [ebp - 0x19a0]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [ebp - 0x19a0]
cvttss2si eax, dword [ebp - 0x19a0]
add esp, 8
jmp 0x100d4dc3
xor eax, eax
jmp 0x100d4dc3
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x19b0], eax
mov eax, dword [ebp - 0x19bc]
mov edi, dword [eax + 8]
mov eax, dword [0x105487ac]
test al, 1
jne 0x100d4e19
or eax, 1
mov dword [0x105487ac], eax
mov edx, 0x990704d7
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x19c8]
call fcn.1005d980
push 0xda7d68cb
mov edx, eax
mov ecx, 0x105487b0
call fcn.1005ddd0
push 0x1015f630
call fcn.10152d1f
add esp, 8
mov byte [ebp - 4], 0
mov eax, dword [0x105487b0]
call eax
mov esi, eax
mov dword [ebp - 0x19b8], esi
test edi, edi
je 0x100d4eac
test esi, esi
je 0x100d4eac
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x19a0], ecx
test ecx, ecx
je 0x100d4eac
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100d4e89
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d4e60
xor edx, edx
test ecx, ecx
je 0x100d4e89
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d4e70
cmp edi, 0x6b98ed8f
je 0x100d4ea4
mov ecx, dword [ebp - 0x19a0]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x19a0], ecx
test ecx, ecx
je 0x100d4eac
mov esi, dword [ebp - 0x19b8]
jmp 0x100d4e41
mov ecx, dword [ebp - 0x19a0]
jmp 0x100d4eae
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x100d4eb8.2
jmp dword [eax*4 + 0x100d5a54]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov esi, eax
jmp 0x100d4f17
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov esi, eax
jmp 0x100d4f17
movss xmm0, dword [ecx + 0xc]
sub esp, 8
movss dword [ebp - 0x19b8], xmm0
fld dword [ebp - 0x19b8]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [ebp - 0x19b8]
cvttss2si esi, dword [ebp - 0x19b8]
add esp, 8
jmp 0x100d4f17
xor esi, esi
jmp 0x100d4f17
mov esi, dword [ecx + 0xc]
mov ecx, dword [0x103c4b18]
mov eax, ecx
mov edx, dword [0x103c4b1c]
mov dword [ebp - 0x14], esi
cmp ecx, edx
je 0x100d4f3c
nop dword [eax]
cmp dword [eax], 0
je 0x100d4f3c
add eax, 8
cmp eax, edx
jne 0x100d4f30
cmp eax, edx
jne 0x100d4f56
mov eax, ecx
cmp ecx, edx
je 0x100d4f52
cmp dword [eax], 1
je 0x100d4f52
add eax, 8
cmp eax, edx
jne 0x100d4f46
cmp eax, edx
je 0x100d4fa9
mov eax, dword [0x10540950]
mov edi, dword [ebp - 0x19ac]
mov dword [0x1054841c], 0x3f800000
mov dword [ebp - 0x19ac], edi
movss xmm0, dword [eax + 0x10]
movss dword [0x10548414], xmm0
addss xmm0, dword [0x101d84f0]
movss dword [0x10548418], xmm0
cmp esi, 1
jge 0x100d4f9d
mov eax, dword [0x101d0e70]
cmp edi, 1
je 0x100d4fa2
mov eax, dword [0x101d0e50]
mov dword [0x10548420], eax
jmp 0x100d4faf
mov edi, dword [ebp - 0x19ac]
mov eax, dword [0x105485d4]
mov esi, dword [ebp - 0x19d8]
add eax, 0xffffffba
xor eax, 0x14f7a21e
cmp byte [eax + esi], 0
je 0x100d527e
cmp edi, 1
jne 0x100d527e
mov eax, dword [0x105408e4]
lea ecx, [esi + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x19b4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x20]
call eax
test eax, eax
je 0x100d5249
mov ecx, dword [0x10540928]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x78]
call edx
test eax, eax
je 0x100d5249
mov ecx, dword [eax + 0xb0]
add ecx, eax
je 0x100d5249
mov eax, dword [ecx + 8]
lea edi, [eax + 0x44]
add edi, ecx
je 0x100d5249
mov eax, dword [esi + 4]
push ecx
mov dword [esp], 0
lea ecx, [ebp - 0x199c]
push 0x100
mov eax, dword [eax + 0x34]
push 0x80
push ecx
lea ecx, [esi + 4]
call eax
test al, al
je 0x100d5249
mov eax, dword [edi]
cmp eax, 0x80
jae 0x100d59da
movss xmm2, dword [edi + 0x18]
lea eax, [eax + eax*2]
movss xmm7, dword [edi + 0x14]
add eax, eax
movss xmm0, dword [edi + 0xc]
movaps xmm3, xmm7
movss xmm1, dword [edi + 0x1c]
movaps xmm4, xmm7
movss dword [ebp - 0x19d8], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [ebp + eax*8 - 0x1998]
movss xmm6, dword [ebp + eax*8 - 0x199c]
mulss xmm4, dword [ebp + eax*8 - 0x198c]
mulss xmm7, dword [ebp + eax*8 - 0x197c]
mulss xmm3, xmm6
movss xmm5, dword [ebp + eax*8 - 0x1990]
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [ebp + eax*8 - 0x1994]
addss xmm3, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [ebp + eax*8 - 0x1988]
mulss xmm2, dword [ebp + eax*8 - 0x1978]
addss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [ebp + eax*8 - 0x1984]
addss xmm3, xmm5
mulss xmm1, dword [ebp + eax*8 - 0x1974]
addss xmm7, xmm2
addss xmm4, xmm0
movss xmm2, dword [ebp + eax*8 - 0x1970]
movss xmm0, dword [edi + 0xc]
mulss xmm0, dword [ebp + eax*8 - 0x1998]
addss xmm7, xmm1
movss xmm1, dword [edi + 8]
mulss xmm1, xmm6
movss xmm6, dword [edi + 0x10]
addss xmm4, dword [ebp + eax*8 - 0x1980]
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [ebp + eax*8 - 0x1994]
addss xmm7, xmm2
addss xmm1, xmm0
movss xmm0, dword [ebp + eax*8 - 0x198c]
mulss xmm0, dword [edi + 8]
movss dword [ebp - 0x19b8], xmm7
movss dword [ebp - 0x19a0], xmm0
addss xmm1, xmm5
movss xmm0, dword [ebp + eax*8 - 0x1988]
mulss xmm0, dword [ebp - 0x19d8]
movss xmm7, dword [ebp - 0x19a0]
addss xmm1, xmm3
addss xmm7, xmm0
movss xmm0, dword [ebp + eax*8 - 0x1984]
mulss xmm0, xmm6
addss xmm7, xmm0
movaps xmm0, xmm7
movss dword [ebp - 0x19a0], xmm7
addss xmm0, dword [ebp + eax*8 - 0x1980]
addss xmm0, xmm4
movss xmm4, dword [ebp + eax*8 - 0x197c]
mulss xmm4, dword [edi + 8]
movss dword [ebp - 0x19a0], xmm0
movss xmm0, dword [ebp + eax*8 - 0x1978]
mulss xmm0, dword [ebp - 0x19d8]
addss xmm4, xmm0
movss xmm0, dword [ebp + eax*8 - 0x1974]
mulss xmm0, xmm6
addss xmm4, xmm0
movss xmm0, dword [0x101d8488]
mulss xmm1, xmm0
addss xmm4, xmm2
movss xmm2, dword [ebp - 0x19a0]
mulss xmm2, xmm0
addss xmm4, dword [ebp - 0x19b8]
unpcklps xmm1, xmm2
movq qword [ebp - 0x19ec], xmm1
mulss xmm4, xmm0
movss dword [ebp - 0x19c0], xmm4
mov eax, dword [ebp - 0x19c0]
mov dword [ebp - 0x19e4], eax
mov al, 1
jmp 0x100d524b
xor al, al
mov byte [ebp - 0x19e0], al
test al, al
je 0x100d59df
mov ecx, dword [0x105408e4]
lea eax, [ebp - 0x19ec]
push 0
push 1
push 2
push eax
call dword [ebp - 0x19b4]
mov edx, dword [0x103c4b1c]
mov ecx, dword [0x103c4b18]
cmp ecx, edx
je 0x100d52c4
cmp dword [ecx], 3
je 0x100d528e
add ecx, 8
cmp ecx, edx
jne 0x100d5282
cmp ecx, edx
je 0x100d52c4
movss xmm0, dword [0x103c4c24]
divss xmm0, dword [0x101d8620]
mov ecx, dword [0x10540948]
push ecx
mov dword [esp], 0
push 0
mov eax, dword [ecx]
push 0x64
push ecx
movss dword [esp], xmm0
push str.buttons_arena_switch_press_02.wav
call dword [eax + 0x30]
mov eax, dword [ebp - 0x19bc]
mov edi, dword [eax + 8]
mov eax, dword [0x105487ac]
test al, 1
jne 0x100d5314
or eax, 1
mov dword [0x105487ac], eax
mov edx, 0x990704d7
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x19e8]
call fcn.1005d980
push 0xda7d68cb
mov edx, eax
mov ecx, 0x105487b0
call fcn.1005ddd0
push 0x1015f630
call fcn.10152d1f
add esp, 8
mov byte [ebp - 4], 0
mov eax, dword [0x105487b0]
call eax
mov esi, eax
mov dword [ebp - 0x19b4], esi
test edi, edi
je 0x100d539f
test esi, esi
je 0x100d539f
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x19a0], ecx
test ecx, ecx
je 0x100d539f
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100d537c
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100d5356
xor edx, edx
test ecx, ecx
je 0x100d537c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d5363
cmp edi, 0x6f332041
je 0x100d5397
mov ecx, dword [ebp - 0x19a0]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x19a0], ecx
test ecx, ecx
je 0x100d539f
mov esi, dword [ebp - 0x19b4]
jmp 0x100d5338
mov eax, dword [ebp - 0x19a0]
jmp 0x100d53a1
xor eax, eax
mov edx, dword [eax + 4]
xorps xmm0, xmm0
mov ecx, edx
mov dword [ebp - 0x1c], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x18], 0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d53c0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.10035df0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
cmp eax, 0xf
mov edi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
cmova ecx, edi
cmp edx, 9
jne 0x100d5588
mov edi, edx
mov esi, str.hegrenade
sub edi, 4
jb 0x100d5411
nop
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100d5416
add ecx, 4
add esi, 4
sub edi, 4
jae 0x100d5400
cmp edi, 0xfffffffc
je 0x100d544a
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x100d5443
cmp edi, 0xfffffffd
je 0x100d544a
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x100d5443
cmp edi, 0xfffffffe
je 0x100d544a
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x100d5443
cmp edi, 0xffffffff
je 0x100d544a
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x100d544a
sbb eax, eax
or eax, 1
jmp 0x100d544c
xor eax, eax
test eax, eax
jne 0x100d5582
movd xmm0, dword [ebp - 0x19b0]
lea ecx, [ebp - 0x1a0c]
cvtdq2ps xmm0, xmm0
mov edx, str.naded__s_for__i_damage___i_health_remaining__n
cvttss2si eax, xmm0
mov dword [ebp - 0x19b4], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x19b4]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.100d6c10
add esp, 0xc
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.1003eb80
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x19f8]
cmp ecx, 0xf
jbe 0x100d54d6
mov edx, dword [ebp - 0x1a0c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d54cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d54cc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10152d39
add esp, 8
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x19dc]
cmp dword [esi + 0xd4], 0
je 0x100d5956
mov eax, dword [esi + 0xd4]
add eax, dword [esi + 0xd0]
mov byte [ebp - 0x19dc], 0
push dword [ebp - 0x19dc]
sub esp, 0xc
mov ecx, esp
sub esp, 0xc
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc4]
mov dword [ecx], eax
mov ecx, esp
mov eax, dword [esi + 0xd0]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc4]
mov dword [ecx], eax
lea ecx, [ebp - 0x19c8]
call fcn.100d6b90
mov eax, dword [esi + 0xd4]
add esp, 0x1c
add eax, dword [esi + 0xd0]
mov edx, dword [ebp - 0x19c0]
cmp edx, eax
je 0x100d5956
mov eax, dword [ebp - 0x19c8]
test eax, eax
je 0x100d5905
mov eax, dword [eax]
jmp 0x100d5907
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
cmp eax, 0xf
lea ecx, [ebp - 0x2c]
cmova ecx, edi
cmp edx, 7
jne 0x100d5683
mov esi, str.inferno
sub edx, 4
jb 0x100d55b5
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x100d55ba
add ecx, 4
add esi, 4
sub edx, 4
jae 0x100d55a4
cmp edx, 0xfffffffc
je 0x100d55ee
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x100d55e7
cmp edx, 0xfffffffd
je 0x100d55ee
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x100d55e7
cmp edx, 0xfffffffe
je 0x100d55ee
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x100d55e7
cmp edx, 0xffffffff
je 0x100d55ee
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x100d55ee
sbb eax, eax
or eax, 1
jmp 0x100d55f0
xor eax, eax
test eax, eax
jne 0x100d5683
movd xmm0, dword [ebp - 0x19b0]
lea ecx, [ebp - 0x1a0c]
cvtdq2ps xmm0, xmm0
mov edx, str.burned__s_for__i_damage___i_health_remaining__n
cvttss2si eax, xmm0
mov dword [ebp - 0x19b4], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x19b4]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.100d6c10
add esp, 0xc
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.1003eb80
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x19f8]
cmp ecx, 0xf
jbe 0x100d54d9
mov edx, dword [ebp - 0x1a0c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d5674
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d5674
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10152d39
add esp, 8
jmp 0x100d54d9
movd xmm0, dword [ebp - 0x19b0]
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
mov dword [ebp - 0x19b4], eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x19d4]
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x19c4], 0
push 0x101d2970
movups xmmword [ebp - 0x19d4], xmm0
mov dword [ebp - 0x19c0], 0
call fcn.10035df0
mov eax, dword [ebp - 0x19ac]
dec eax
mov dword [ebp - 0x19a4], 3
cmp eax, 7
ja case.default.0x100d56e2
jmp dword [eax*4 + 0x100d5a70]
push 4
push str.head
jmp 0x100d571d
push 4
push str.neck
jmp 0x100d571d
push 5
push str.chest
jmp 0x100d571d
push 7
push str.stomach
jmp 0x100d571d
push 4
push str.arms
jmp 0x100d571d
push 4
push str.legs
lea ecx, [ebp - 0x19d4]
call fcn.10038920
push 0x98
lea eax, [ebp - 0x234]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x234], 0x101d14d8
lea ecx, [ebp - 0x1e4]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
push 0
push 0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x19a4], 0xb
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool_]
mov dword [ebp - 4], 0xd
mov eax, dword [ebp - 0x234]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x234], 0x101d14d4
mov eax, dword [ebp - 0x234]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x238], eax
lea ecx, [ebp - 0x230]
call dword [sym.imp.MSVCP140.dll_protected:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void_]
mov dword [ebp - 0x230], 0x1017bad8
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 4
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x19b4]
push eax
lea eax, [ebp - 0x19d4]
push eax
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x234]
call fcn.100d7200
add esp, 0x10
lea eax, [ebp - 0x1a0c]
lea ecx, [ebp - 0x230]
push eax
call fcn.1003e8e0
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x19a4], 0x1f
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x234], 0x101d14d4
mov eax, dword [ebp - 0x234]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x238], eax
lea ecx, [ebp - 0x230]
call fcn.10035110
lea ecx, [ebp - 0x22c]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x1e4]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x1a0c]
mov byte [ebp - 4], 0xf
call fcn.1003eb80
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x19f8]
cmp ecx, 0xf
jbe 0x100d58a8
mov edx, dword [ebp - 0x1a0c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d589e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d58ff
push ecx
push edx
call fcn.10152d39
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x19c0]
mov dword [ebp - 0x19fc], 0
mov dword [ebp - 0x19f8], 0xf
mov byte [ebp - 0x1a0c], 0
cmp ecx, 0xf
jbe 0x100d54d9
mov edx, dword [ebp - 0x19d4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100d5674
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d5674
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, edx
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x100d5956
cmp dword [esi + 0xc], 0
je 0x100d5928
mov eax, dword [ebp - 0x19a8]
cmp dword [esi + 0x48], eax
jne 0x100d5956
mov ecx, dword [ebp - 0x19bc]
mov eax, dword [ebp - 0x19ac]
mov dword [esi + 0x6c], eax
push 0
mov eax, dword [ecx]
push str.dmg_health
mov eax, dword [eax + 0x18]
call eax
mov dword [esi + 0x70], eax
mov eax, dword [0x10540964]
mov eax, dword [eax + 0x16c]
mov dword [esi + 0x68], eax
mov eax, dword [ebp - 0x18]
cmp eax, 0xf
jbe 0x100d5985
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100d597b
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100d59ad
push ecx
push edi
call fcn.10152d39
add esp, 8
mov eax, dword [ebp - 0x30]
cmp eax, 0xf
jbe 0x100d59bd
mov edx, dword [ebp - 0x44]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100d59b3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100d59b3
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10152d39
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101528b9
mov esp, ebp
pop ebp
ret 4
call fcn.100d6b80
call fcn.100d4260
jg 0x100d5a2d
or eax, 0xd47d410
adc byte [edi - 0x2beff2b9], bl
inc edi
or eax, 0xd478f10
adc ah, dl
inc edi
or eax, 0xd47d010
adc bh, bl
dec eax
or eax, 0xd493410
adc bh, bh
dec eax
or eax, 0xd493410
adc bh, ch
dec eax
or eax, 0xd493410
adc byte [eax], dh
dec ecx
or eax, 0xd4a8f10
adc dl, dh
dec edx
or eax, 0xd4ab510
adc dl, dh
dec edx
or eax, 0xd4a9f10
adc dl, dh
dec edx
or eax, 0xd4ae610
adc byte [edi + 0x4d], ch
or eax, 0xd4dc010
adc byte [ebx - 0x3feff2b3], cl
dec edx
or eax, 0xd4af210
adc dh, ah
dec edx
or eax, 0xd4d6f10
adc al, al
dec ebp
or eax, 0xd4d8b10
adc al, al
dec ebp
or eax, 0xd4d7d10
adc al, al
dec ebp
or eax, 0xd4dbc10
adc byte [edi + 0x14100d4e], bh
dec edi
or eax, 0xd4edf10
adc byte [edi + ecx*2], dl
or eax, 0xd4ecf10
adc byte [edi + ecx*2], dl
or eax, 0xd4f1010
adc cl, ch
push esi
or eax, 0xd56fb10
adc byte [edi + edx*2], al
or eax, 0xd570d10
adc byte [0x16100d57], cl
push edi
or eax, 0xd571610
adc dl, dh
push esi
or eax, 0xec8b5510
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1015da83
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x101e5040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x100d5ccb
cmp dword [0x10429d7c], 0
je 0x100d5ccb
mov ebx, dword [eax + 8]
mov eax, dword [0x105487ac]
test al, 1
jne 0x100d5b1d
or eax, 1
mov dword [0x105487ac], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.1005d980
push 0xda7d68cb
mov edx, eax
mov ecx, 0x105487b0
call fcn.1005ddd0
push 0x1015f630
call fcn.10152d1f
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x105487b0]
call eax
mov ecx, eax
mov dword [ebp + 8], ecx
test ebx, ebx
je 0x100d5b86
test ecx, ecx
je 0x100d5b86
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x100d5b86
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx]
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100d5b7a
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x100d5b54
xor edx, edx
test ecx, ecx
je 0x100d5b7a
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100d5b61
cmp edi, 0x11ab48ff
je 0x100d5b88
mov ebx, dword [ebx + 0x14]
test ebx, ebx
je 0x100d5b86
mov ecx, dword [ebp + 8]
jmp 0x100d5b38
xor ebx, ebx
movsx eax, byte [ebx + 0x10]
dec eax
cmp eax, 6
ja case.0x100d5b92.2
jmp dword [eax*4 + 0x100d5ce0]
push dword [ebx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov edx, eax
jmp 0x100d5be5
push dword [ebx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov edx, eax
jmp 0x100d5be5
movss xmm0, dword [ebx + 0xc]
sub esp, 8
movss dword [ebp + 8], xmm0
fld dword [ebp + 8]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [ebp + 8]
cvttss2si edx, dword [ebp + 8]
add esp, 8
jmp 0x100d5be5
xor edx, edx
jmp 0x100d5be5
mov edx, dword [ebx + 0xc]
mov ecx, dword [0x105408f0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x105408f0]
mov esi, eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
call edx
cmp esi, eax
jne 0x100d5ccb
mov eax, dword [0x10541578]
add eax, dword [0x1054157c]
mov byte [ebp + 8], 0
push dword [ebp + 8]
sub esp, 0xc
mov edx, esp
sub esp, 0xc
mov ecx, esp
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], eax
mov eax, dword [0x1054156c]
mov dword [edx], eax
mov eax, dword [0x10541578]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], eax
mov eax, dword [0x1054156c]
mov dword [ecx], eax
lea ecx, [ebp - 0x18]
call fcn.100d6da0
mov eax, dword [0x10541578]
add esp, 0x1c
add eax, dword [0x1054157c]
mov esi, dword [ebp - 0x10]
cmp esi, eax
je 0x100d5ccb
mov eax, dword [0x10540950]
mov edx, dword [ebp - 0x18]
movss xmm0, dword [eax]
addss xmm0, dword [0x101d8550]
cvttss2si edi, xmm0
test edx, edx
je 0x100d5c96
mov eax, dword [edx]
jmp 0x100d5c98
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, esi
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x54], edi
mov eax, dword [0x10540964]
mov edi, dword [eax + 0x16c]
test edx, edx
je 0x100d5cba
mov eax, dword [edx]
jmp 0x100d5cbc
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
dec ecx
and ecx, esi
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x64], edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4