Function at 0x100c7280
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10196940
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
mov eax, dword [0x101f6e00]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movaps xmm0, xmmword [str.kVMW]
lea esi, [ecx + 0x8e]
mov edx, 0x3c4
mov dword [ebp - 0x5c], edx
mov eax, dword [esi - 6]
test eax, eax
je 0x10055904
mov ecx, dword [0xf3e7c8]
push eax
call dword [0x101d64c4]
movaps xmm0, xmmword [str.kVMW]
mov edx, dword [ebp - 0x5c]
test eax, eax
je 0x100559d5
movzx eax, word [esi - 2]
xor ecx, ecx
push eax
mov eax, dword [0x10297f7c]
movups xmmword [ebp - 0x4c], xmm0
movzx eax, word [edx + eax]
push eax
mov al, byte [ebp + ecx - 0x4b]
xor al, byte [ebp - 0x4c]
mov byte [ebp + ecx - 0x4b], al
inc ecx
cmp ecx, 0xe
jb 0x10055921
sub esp, 0x1c
mov byte [ebp - 0x3d], 0
mov edx, esp
lea ecx, [ebp - 0x4b]
xorps xmm0, xmm0
lea edi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10055960
sub ecx, edi
lea eax, [ebp - 0x4b]
push ecx
push eax
mov ecx, edx
call fcn.100484d0
lea eax, [ebp - 0xa8]
push eax
call fcn.10052ec0
mov edi, dword [esi + 0xa]
add esp, 0x28
mov dword [ebp - 4], 0
test edi, edi
je 0x100559ae
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100559ae
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call dword [0x101d64a4]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 4], 0xffffffff
call fcn.100477d0
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xa8], 0
jmp 0x10055b9a
cmp dword [esi - 6], 1
jne 0x10055ba8
cmp byte [esi], 0
je 0x10055ba8
movzx eax, word [esi - 2]
xor ecx, ecx
push eax
mov eax, dword [0x10297f7c]
mov dword [ebp - 0x20], 0x591d5c79
mov dword [ebp - 0x1c], 0x1d5c5956
mov byte [ebp - 0x18], 0
movzx eax, word [edx + eax]
mov dl, 0x79
push eax
nop dword [eax]
xor byte [ebp + ecx - 0x1f], dl
inc ecx
cmp ecx, 7
jae 0x10055a1f
mov dl, byte [ebp - 0x20]
jmp 0x10055a10
sub esp, 0x1c
mov byte [ebp - 0x18], 0
mov edx, esp
lea ecx, [ebp - 0x1f]
xorps xmm0, xmm0
lea edi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10055a50
sub ecx, edi
lea eax, [ebp - 0x1f]
push ecx
push eax
mov ecx, edx
call fcn.100484d0
lea eax, [ebp - 0x58]
push eax
call fcn.10052ec0
mov edi, dword [esi + 0xa]
add esp, 0x28
mov dword [ebp - 4], 1
test edi, edi
je 0x10055a98
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10055a98
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call dword [0x101d64a4]
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
call fcn.100477d0
mov eax, dword [ebp - 0x58]
push 8
push eax
mov dword [ebp - 0x58], 0
call fcn.1013c8d0
add esp, 8
xor ecx, ecx
cmp byte [esi], 1
jne 0x10055af8
mov dl, 0x71
mov dword [ebp - 0x38], 0x1d344d71
mov dword [ebp - 0x34], 0x31e3c51
mov dword [ebp - 0x30], 0x4f1510
nop word [eax + eax]
xor byte [ebp + ecx - 0x37], dl
inc ecx
cmp ecx, 0xa
jae 0x10055aef
mov dl, byte [ebp - 0x38]
jmp 0x10055ae0
mov byte [ebp - 0x2d], 0
lea edx, [ebp - 0x37]
jmp 0x10055b26
mov dl, 0x40
mov dword [ebp - 0x2c], 0x210b7c40
mov dword [ebp - 0x28], 0x7e333532
mov byte [ebp - 0x24], 0
nop dword [eax]
xor byte [ebp + ecx - 0x2b], dl
inc ecx
cmp ecx, 7
jae 0x10055b1f
mov dl, byte [ebp - 0x2c]
jmp 0x10055b10
mov byte [ebp - 0x24], 0
lea edx, [ebp - 0x2b]
mov ecx, edx
mov dword [ebp - 0x80], 0
xorps xmm0, xmm0
mov dword [ebp - 0x6c], 0
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x68], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10055b47
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x80]
call fcn.100484d0
mov edi, dword [esi + 2]
mov dword [ebp - 4], 2
test edi, edi
je 0x10055b81
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10055b81
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call dword [0x101d64a4]
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.100477d0
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x80], 0
push 8
push eax
call fcn.1013c8d0
mov edx, dword [ebp - 0x5c]
add esp, 8
mov eax, dword [0x10297f7c]
mov ax, word [edx + eax]
cmp ax, word [esi - 2]
jb 0x10055bec
mov edi, dword [esi + 0xa]
test edi, edi
je 0x10055bec
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10055be9
push 4
add edi, 0x15c
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov edx, dword [ebp - 0x5c]
test eax, eax
jne 0x10055bec
mov dword [edi], 0xffff6347
jmp 0x10055bec
mov edx, dword [ebp - 0x5c]
movaps xmm0, xmmword [str.kVMW]
add edx, 2
add esi, 0x20
mov dword [ebp - 0x5c], edx
cmp edx, 0x3ca
jl 0x100558e6
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1013c8c0
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push esi
mov esi, ecx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x18]
sub edx, dword [esi + 0x14]
lea eax, [ecx + 1]
cmp eax, edx
jbe 0x100c7297
xor al, al
jmp 0x100c72a2
push ecx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov al, byte [eax]
inc dword [esi + 8]
movzx eax, al
cmp eax, 5
ja case.default.0x100c72b1
jmp dword [eax*4 + 0x100c73f8]
mov ecx, esi
pop esi
jmp 0x100c7410
mov ecx, esi
pop esi
jmp 0x100c76a0
mov ecx, esi
pop esi
jmp 0x100c7990
mov ecx, esi
pop esi
jmp fcn.100c7b10
mov ecx, dword [0x10297f7c]
cmp dword [ecx + 0x474], 0
je 0x100c730b
mov eax, dword [ecx + 0x510]
test eax, eax
je 0x100c730b
mov eax, dword [eax + 0x168]
test eax, eax
je 0x100c730b
push 0
mov ecx, eax
call dword [0x101d64b8]
mov ecx, dword [0x10297f7c]
mov esi, dword [ecx + 0x4e0]
test esi, esi
je 0x100c735b
mov eax, dword [esi + 0x64]
test eax, eax
je 0x100c732c
push 0
mov ecx, eax
call dword [0x101d64b8]
mov ecx, dword [0x10297f7c]
mov esi, dword [esi + 0x64]
test esi, esi
je 0x100c735b
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100c7355
mov dword [0x1027ede8], esi
mov dword [0x10297efc], 7
call fcn.100e5070
mov ecx, dword [0x10297f7c]
xor edx, edx
lea esi, [ecx + 0x3a8]
lea eax, [ecx + 0x3be]
push edi
nop word [eax + eax]
xor edi, edi
lea eax, [eax + 2]
mov word [eax - 8], di
lea esi, [esi + 4]
mov word [eax - 2], di
mov word [eax + 4], di
mov dword [esi - 0x10], edi
mov dword [esi - 4], edi
mov byte [ecx + edx + 0x3cf], 0
inc edx
cmp edx, 3
jl 0x100c7370
pop edi
xor eax, eax
mov dword [ecx + 0x3b4], 0
push 0x15
mov dword [ecx + 0x3ca], eax
add ecx, 0x3d4
push str.Collection_Race_Event
call fcn.10047890
mov eax, dword [0x10297f7c]
pop esi
mov byte [eax + 0x398], 0
ret
mov eax, dword [0x10297f7c]
cmp dword [eax + 0x474], 0
je case.default.0x100c72b1
mov eax, dword [eax + 0x510]
test eax, eax
je case.default.0x100c72b1
mov ecx, dword [eax + 0x168]
test ecx, ecx
je case.default.0x100c72b1
push 0
call dword [0x101d64b8]
pop esi
ret
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [0x10297f7c]
mov esi, ecx
mov ebx, 0x3be
mov byte [esi + 4], 1
mov byte [edi + 0x398], 1
nop
mov edx, dword [esi + 8]
lea eax, [edi - 6]
mov ecx, dword [esi + 0x18]
add eax, ebx
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x10], eax
lea eax, [edx + 2]
cmp eax, ecx
jbe 0x100c744d
xor eax, eax
jmp 0x100c745f
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
movzx eax, word [eax]
mov ecx, dword [esp + 0x10]
add dword [esi + 8], 2
mov word [ecx], ax
lea eax, [ebx + edi]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x10], eax
lea eax, [edx + 2]
cmp eax, ecx
jbe 0x100c7485
xor eax, eax
jmp 0x100c7497
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
movzx eax, word [eax]
mov ecx, dword [esp + 0x10]
add dword [esi + 8], 2
mov word [ecx], ax
xor eax, eax
mov word [ebx + edi + 6], ax
add ebx, 2
cmp ebx, 0x3c4
jl 0x100c7430
mov dword [esp + 0x10], eax
mov ebx, 0x3a8
mov edx, dword [esi + 8]
lea eax, [edi - 0xc]
mov ecx, dword [esi + 0x18]
add eax, ebx
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x14], eax
lea eax, [edx + 4]
cmp eax, ecx
jbe 0x100c74de
xor eax, eax
jmp 0x100c74ef
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
add dword [esi + 8], 4
mov dword [ecx], eax
lea eax, [ebx + edi]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x14], eax
lea eax, [edx + 4]
cmp eax, ecx
jbe 0x100c7514
xor eax, eax
jmp 0x100c7525
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
add dword [esi + 8], 4
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 8]
add eax, 0x3cf
mov ecx, dword [esi + 0x18]
add eax, edi
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x14], eax
lea eax, [edx + 1]
cmp eax, ecx
jbe 0x100c7552
xor al, al
jmp 0x100c7563
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
mov al, byte [eax]
mov ecx, dword [esp + 0x14]
add ebx, 4
inc dword [esi + 8]
inc dword [esp + 0x10]
mov byte [ecx], al
cmp ebx, 0x3b4
jl 0x100c74c1
mov edx, dword [esi + 8]
lea ebx, [edi + 0x3b4]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edx + 4]
cmp eax, ecx
jbe 0x100c7599
xor eax, eax
jmp 0x100c75aa
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
mov eax, dword [eax]
add dword [esi + 8], 4
mov dword [ebx], eax
lea ebx, [edi + 0x3ca]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edx + 2]
cmp eax, ecx
jbe 0x100c75ca
xor eax, eax
jmp 0x100c75dc
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
movzx eax, word [eax]
add dword [esi + 8], 2
mov word [ebx], ax
lea ebx, [edi + 0x3cc]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edx + 2]
cmp eax, ecx
jbe 0x100c75fd
xor eax, eax
jmp 0x100c760f
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
movzx eax, word [eax]
add dword [esi + 8], 2
mov word [ebx], ax
lea ebx, [edi + 0x3ce]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edx + 1]
cmp eax, ecx
jbe 0x100c7630
xor al, al
jmp 0x100c7641
push edx
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edi, dword [0x10297f7c]
mov al, byte [eax]
inc dword [esi + 8]
mov ecx, esi
mov byte [ebx], al
lea eax, [edi + 0x3d4]
push eax
call fcn.10084df0
mov esi, eax
mov eax, dword [esi + 8]
mov edx, dword [esi + 0x18]
sub edx, dword [esi + 0x14]
lea ecx, [eax + 1]
cmp ecx, edx
jbe 0x100c766a
xor al, al
jmp 0x100c7675
push eax
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov al, byte [eax]
inc dword [esi + 8]
mov byte [edi + 0x3f0], al
mov eax, dword [0x10297f7c]
pop edi
pop esi
pop ebp
mov ecx, dword [eax + 0x510]
pop ebx
test ecx, ecx
je 0x100c7699
add esp, 8
jmp fcn.10054870
add esp, 8
ret
mov edx, dword [0x10297f7c]
sub esp, 8
cmp dword [edx + 0x510], 0
push esi
mov esi, ecx
je 0x100c797d
push ebx
push ebp
push edi
mov byte [edx + 0x398], 1
mov edi, 0x3be
nop dword [eax + eax]
mov ebp, dword [esi + 8]
lea eax, [edx - 6]
mov ecx, dword [esi + 0x18]
add eax, edi
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x10], eax
lea eax, [ebp + 2]
cmp eax, ecx
jbe 0x100c76ed
xor eax, eax
jmp 0x100c76ff
push ebp
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx eax, word [eax]
mov ecx, dword [esp + 0x10]
add dword [esi + 8], 2
mov word [ecx], ax
lea eax, [edi + edx]
mov ebp, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x10], eax
lea eax, [ebp + 2]
cmp eax, ecx
jbe 0x100c7725
xor eax, eax
jmp 0x100c7737
push ebp
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx eax, word [eax]
mov ecx, dword [esp + 0x10]
add dword [esi + 8], 2
mov word [ecx], ax
mov ebp, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [ebp + 2]
cmp eax, ecx
jbe 0x100c7756
xor eax, eax
jmp 0x100c7768
push ebp
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx eax, word [eax]
add dword [esi + 8], 2
mov word [edi + edx + 6], ax
add edi, 2
cmp edi, 0x3c4
jl 0x100c76d0
mov dword [esp + 0x10], 0
mov edi, 0x3a8
nop dword [eax]
mov ebp, dword [esi + 8]
lea eax, [edx - 0xc]
mov ecx, dword [esi + 0x18]
add eax, edi
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x14], eax
lea eax, [ebp + 4]
cmp eax, ecx
jbe 0x100c77ad
xor eax, eax
jmp 0x100c77be
push ebp
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
add dword [esi + 8], 4
mov dword [ecx], eax
lea eax, [edi + edx]
mov ebp, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x14], eax
lea eax, [ebp + 4]
cmp eax, ecx
jbe 0x100c77e3
xor eax, eax
jmp 0x100c77f4
push ebp
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
add dword [esi + 8], 4
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov ebp, dword [esi + 8]
add eax, 0x3cf
mov ecx, dword [esi + 0x18]
add eax, edx
sub ecx, dword [esi + 0x14]
mov dword [esp + 0x14], eax
lea eax, [ebp + 1]
cmp eax, ecx
jbe 0x100c7821
xor al, al
jmp 0x100c7832
push ebp
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
mov al, byte [eax]
mov ecx, dword [esp + 0x14]
add edi, 4
inc dword [esi + 8]
inc dword [esp + 0x10]
mov byte [ecx], al
cmp edi, 0x3b4
jl 0x100c7790
mov edi, dword [esi + 8]
lea ebp, [edx + 0x3b4]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edi + 4]
cmp eax, ecx
jbe 0x100c7868
xor eax, eax
jmp 0x100c7879
push edi
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
mov eax, dword [eax]
add dword [esi + 8], 4
mov dword [ebp], eax
lea ebp, [edx + 0x3ca]
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edi + 2]
cmp eax, ecx
jbe 0x100c789a
xor eax, eax
jmp 0x100c78ac
push edi
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx eax, word [eax]
add dword [esi + 8], 2
mov word [ebp], ax
lea ebp, [edx + 0x3cc]
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edi + 2]
cmp eax, ecx
jbe 0x100c78ce
xor eax, eax
jmp 0x100c78e0
push edi
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx eax, word [eax]
add dword [esi + 8], 2
mov word [ebp], ax
lea ebp, [edx + 0x3ce]
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [edi + 1]
cmp eax, ecx
jbe 0x100c7902
xor al, al
jmp 0x100c7913
push edi
lea ecx, [esi + 0x10]
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
mov al, byte [eax]
inc dword [esi + 8]
mov ecx, esi
mov byte [ebp], al
lea eax, [edx + 0x3d4]
push eax
call fcn.10084df0
mov ecx, dword [0x10297f7c]
pop edi
pop ebp
pop ebx
cmp dword [ecx + 0x474], 0
je 0x100c797d
mov eax, dword [ecx + 0x510]
test eax, eax
je 0x100c797d
mov eax, dword [eax + 0x168]
test eax, eax
je 0x100c795d
push 1
mov ecx, eax
call dword [0x101d64b8]
mov ecx, dword [0x10297f7c]
mov ecx, dword [ecx + 0x510]
call fcn.10054870
mov ecx, dword [0x10297f7c]
pop esi
mov ecx, dword [ecx + 0x510]
add esp, 8
jmp 0x10055890
pop esi
add esp, 8
ret
push ecx
mov edx, dword [0x10297f7c]
push esi
mov esi, ecx
cmp dword [edx + 0x474], 0
je 0x100c7b05
cmp dword [edx + 0x510], 0
je 0x100c7b05
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
push ebx
push edi
mov edi, dword [esi + 8]
lea ebx, [esi + 0x10]
lea eax, [edi + 2]
cmp eax, ecx
jbe 0x100c79cd
xor edi, edi
jmp 0x100c79de
push edi
mov ecx, ebx
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx edi, word [eax]
add dword [esi + 8], 2
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
push ebp
mov ebp, dword [esi + 8]
lea eax, [ebp + 2]
cmp eax, ecx
jbe 0x100c79fd
mov dword [esp + 0x10], 0
jmp 0x100c7a12
push ebp
mov ecx, ebx
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx eax, word [eax]
mov dword [esp + 0x10], eax
add dword [esi + 8], 2
mov ebp, dword [esi + 8]
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
lea eax, [ebp + 2]
cmp eax, ecx
jbe 0x100c7a2a
xor ebp, ebp
jmp 0x100c7a3b
push ebp
mov ecx, ebx
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx ebp, word [eax]
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x18]
add eax, 2
sub ecx, dword [esi + 0x14]
cmp eax, ecx
jbe 0x100c7a53
xor ebx, ebx
jmp 0x100c7a66
push dword [esi + 8]
mov ecx, ebx
call fcn.1004f3b0
mov edx, dword [0x10297f7c]
movzx ebx, word [eax]
add dword [esi + 8], 2
cmp byte [edx + 0x398], 0
je 0x100c7b02
xor cl, cl
cmp word [edx + 0x3b8], di
jne 0x100c7a9f
mov ax, word [edx + 0x3c4]
cmp ax, word [edx + 0x3be]
jae 0x100c7a9f
mov eax, dword [esp + 0x10]
mov cl, 1
mov word [edx + 0x3c4], ax
cmp word [edx + 0x3ba], di
jne 0x100c7ac1
mov ax, word [edx + 0x3c6]
cmp ax, word [edx + 0x3c0]
jae 0x100c7ac1
mov word [edx + 0x3c6], bp
mov cl, 1
cmp word [edx + 0x3bc], di
jne 0x100c7ae3
mov ax, word [edx + 0x3c8]
cmp ax, word [edx + 0x3c2]
jae 0x100c7ae3
mov word [edx + 0x3c8], bx
jmp 0x100c7ae7
test cl, cl
je 0x100c7b02
cmp dword [edx + 0x474], 0
je 0x100c7b02
mov ecx, dword [edx + 0x510]
pop ebp
pop edi
pop ebx
pop esi
add esp, 4
jmp 0x10055890
pop ebp
pop edi
pop ebx
pop esi
pop ecx
ret