Function at 0x100c238e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x314
mov eax, dword [0x101f90c0]
xor eax, esp
mov dword [esp + 0x310], eax
mov eax, dword [0x10214408]
push ebx
push esi
push edi
cmp byte [eax + 0x3589], 0
mov edi, ecx
mov dword [esp + 0x64], edi
je 0x100c3d24
cmp dword [eax + 0x3568], 0
je 0x100c3d24
cmp dword [eax + 0x356c], 0
je 0x100c3d24
test edi, edi
je 0x100c3d38
mov eax, dword [0x10215cf4]
cmp dword [eax], 0
je 0x100c3d38
mov eax, dword [0x10214410]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x174]
call eax
test al, al
jne 0x100c3d38
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1021551c]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x103dbef4]
mov dword [esp + 0x18], esi
cmp eax, dword [esi + 4]
jle 0x100c14a3
push 0x103dbef4
call fcn.1018e80d
add esp, 4
cmp dword [0x103dbef4], 0xffffffff
jne 0x100c14a3
mov eax, dword [0x10214410]
xor ebx, ebx
movq xmm0, qword [str._AmP]
mov eax, dword [eax + 8]
mov dword [esp + 0x44], eax
mov ax, word [0x101dfbf8]
mov word [esp + 0x78], ax
mov al, byte [0x101dfbfa]
movq qword [esp + 0x70], xmm0
mov byte [esp + 0x7a], al
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x70], cl
inc ebx
cmp ebx, 0xb
jl 0x100c1460
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x70]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
call eax
push 0x103dbef4
mov dword [0x103dbeec], eax
call fcn.1018e7bc
add esp, 4
mov eax, dword [0x103dbef0]
cmp eax, dword [esi + 4]
jle 0x100c153e
push 0x103dbef0
call fcn.1018e80d
add esp, 4
cmp dword [0x103dbef0], 0xffffffff
jne 0x100c153e
xorps xmm0, xmm0
mov dword [0x103dbebc], 0
push 2
push 0x103dbebc
mov dword [0x103dbec0], 0
mov dword [0x103dbec4], 0
movups xmmword [0x103dbec8], xmm0
mov dword [0x103dbee0], 0
movq qword [0x103dbed8], xmm0
mov dword [0x103dbee4], 0
mov dword [0x103dbee8], 0
call fcn.1018d98f
push 0x101ba5b0
call fcn.1018e559
add esp, 0xc
push 0x103dbef0
call fcn.1018e7bc
add esp, 4
push 0x103dbebc
call fcn.1018d9ab
add esp, 4
test eax, eax
jne 0x100c3d4d
cmp dword [0x103dbee8], 0x7fffffff
je 0x100c3d54
mov eax, dword [0x103dbf18]
cmp eax, dword [esi + 4]
jle 0x100c168c
push 0x103dbf18
call fcn.1018e80d
add esp, 4
cmp dword [0x103dbf18], 0xffffffff
jne 0x100c168c
push 0x30
mov dword [0x103dbef8], 0
mov dword [0x103dbefc], 0
mov dword [0x103dbf00], 0
call fcn.1018e586
mov ebx, eax
add esp, 4
mov dword [ebx], ebx
mov dword [ebx + 4], ebx
push 0x40
mov dword [0x103dbefc], ebx
mov dword [0x103dbf04], 0
mov dword [0x103dbf08], 0
mov dword [0x103dbf0c], 0
mov dword [0x103dbf10], 7
mov dword [0x103dbf14], 8
mov dword [0x103dbef8], 0x3f800000
call fcn.1018e586
mov ecx, dword [0x103dbf04]
mov esi, eax
mov eax, dword [0x103dbf0c]
add esp, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x100c164e
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x100c1644
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
push edx
push ecx
call fcn.1018e573
add esp, 8
lea eax, [esi + 0x40]
mov dword [0x103dbf04], esi
mov dword [0x103dbf08], eax
mov dword [0x103dbf0c], eax
cmp esi, eax
je 0x100c166e
mov dword [esi], ebx
add esi, 4
cmp esi, eax
jne 0x100c1665
push 0x101ba590
call fcn.1018e559
add esp, 4
push 0x103dbf18
call fcn.1018e7bc
mov esi, dword [esp + 0x1c]
add esp, 4
mov eax, dword [0x103dbf1c]
cmp eax, dword [esi + 4]
jle 0x100c17b3
push 0x103dbf1c
call fcn.1018e80d
add esp, 4
cmp dword [0x103dbf1c], 0xffffffff
jne 0x100c17b3
push 0x24
mov dword [0x103dbf20], 0
mov dword [0x103dbf24], 0
mov dword [0x103dbf28], 0
call fcn.1018e586
mov ebx, eax
add esp, 4
mov dword [ebx], ebx
mov dword [ebx + 4], ebx
push 0x40
mov dword [0x103dbf24], ebx
mov dword [0x103dbf2c], 0
mov dword [0x103dbf30], 0
mov dword [0x103dbf34], 0
mov dword [0x103dbf38], 7
mov dword [0x103dbf3c], 8
mov dword [0x103dbf20], 0x3f800000
call fcn.1018e586
mov ecx, dword [0x103dbf2c]
mov esi, eax
mov eax, dword [0x103dbf34]
add esp, 4
sub eax, ecx
sar eax, 2
test eax, eax
je 0x100c1777
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x100c176d
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
push edx
push ecx
call fcn.1018e573
add esp, 8
lea eax, [esi + 0x40]
mov dword [0x103dbf2c], esi
mov dword [0x103dbf30], eax
mov dword [0x103dbf34], eax
cmp esi, eax
je 0x100c1799
nop
mov dword [esi], ebx
add esi, 4
cmp esi, eax
jne 0x100c1790
push 0x101ba570
call fcn.1018e559
add esp, 4
push 0x103dbf1c
call fcn.1018e7bc
add esp, 4
mov eax, dword [0x10214404]
xorps xmm0, xmm0
movups xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x9c], 0x437f0000
mov ecx, edi
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0xf
mov byte [esp + 0xa0], 0
mov eax, dword [eax + 0x10]
movss xmm0, dword [eax]
mov eax, dword [edi]
movss dword [esp + 0x98], xmm0
mov eax, dword [eax + 4]
call eax
mov edx, eax
mov ecx, 0x811c9dc5
mov al, byte [edx]
test al, al
je 0x100c3ca8
movsx eax, al
lea edx, [edx + 1]
xor eax, ecx
imul ecx, eax, 0x1000193
mov al, byte [edx]
test al, al
jne 0x100c1816
cmp ecx, 0x7dd410c4
ja 0x100c34de
je 0x100c31fc
cmp ecx, 0x1b30ddf0
je 0x100c2109
cmp ecx, 0x4400fb1c
je 0x100c1e94
cmp ecx, 0x4e704c3e
jne 0x100c3ca8
mov eax, dword [0x10214408]
test byte [eax + 0x356c], 8
je 0x100c3c7a
mov eax, dword [0x10214410]
xor ebx, ebx
mov esi, dword [eax + 0x10]
mov eax, dword [0x101dd41c]
mov dword [esp + 0x18], eax
mov ax, word [0x101dd420]
mov word [esp + 0x1c], ax
mov al, byte [0x101dd422]
mov byte [esp + 0x1e], al
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 7
jl 0x100c18a0
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x60], 0
movups xmmword [esp + 0x4c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c18e0
sub ecx, edx
lea eax, [esp + 0x18]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.10026930
cmp dword [esp + 0x60], 0xf
lea edx, [esp + 0x4c]
mov eax, dword [edi]
mov ecx, edi
cmova edx, dword [esp + 0x4c]
push 0
push edx
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov ecx, dword [esp + 0x60]
mov edi, eax
cmp ecx, 0xf
jbe 0x100c1954
mov edx, dword [esp + 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c194a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d65
push ecx
push edx
call fcn.1018e573
add esp, 8
mov eax, dword [0x10214410]
mov esi, dword [eax + 0x10]
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea ecx, [esp + 0x1c0]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
or ecx, 0xffffffff
test al, al
cmovne ecx, dword [esp + 0x250]
cmp edi, ecx
je 0x100c3c7a
mov eax, dword [0x10214410]
push edi
mov ecx, dword [eax + 0x18]
call fcn.1007c1d0
mov esi, eax
test esi, esi
je 0x100c3c7a
push 0x10214434
lea ecx, [esp + 0x104]
call fcn.1001fc30
movq xmm0, qword [0x101dfbbc]
xor ebx, ebx
mov al, byte [0x101dfbc4]
movq qword [esp + 0x18], xmm0
mov byte [esp + 0x20], al
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 9
jl 0x100c19d7
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xbc]
call fcn.1001fbf0
mov ecx, dword [0x103dbeec]
mov dword [esp + 0x64], eax
call fcn.10087860
mov edx, eax
lea ecx, [esp + 0x160]
call fcn.10003bf0
movups xmm0, xmmword [0x101dfba8]
mov cl, byte [0x101dfbb8]
xor ebx, ebx
mov edi, dword [0x10215510]
mov dword [esp + 0x18], eax
mov byte [esp + 0x3c], cl
movups xmmword [esp + 0x2c], xmm0
cmp edi, 2
jl 0x100c1bb0
movaps xmm0, xmmword [str.0000000000000000]
lea edx, [esp + 0x30]
movaps xmm4, xmmword [0x101eb860]
movaps xmm3, xmmword [0x101ebc20]
movaps xmm5, xmmword [0x101eb8c0]
movaps xmmword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x70]
nop word [eax + eax]
movd xmm0, ebx
lea eax, [ebx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + ebx + 0x2c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ebx + 0x2c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebx + edx]
xorps xmm1, xmm0
movd dword [ebx + edx], xmm1
add ebx, 8
cmp ebx, 0x10
jl 0x100c1a80
cmp ebx, 0x11
jl 0x100c1bb0
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0xec]
call fcn.1001fbf0
mov dword [esp + 0x44], eax
mov ecx, esi
lea eax, [esp + 0x130]
push eax
call fcn.10034d10
mov cl, byte [0x101dfb9c]
mov esi, eax
mov byte [esp + 0x90], cl
jmp 0x100c1c0a
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x2c], cl
inc ebx
cmp ebx, 0x11
jl 0x100c1bb0
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0xec]
call fcn.1001fbf0
mov dword [esp + 0x44], eax
mov ecx, esi
lea eax, [esp + 0x130]
push eax
call fcn.10034d10
mov esi, eax
mov al, byte [0x101dfb9c]
mov byte [esp + 0x90], al
movups xmm0, xmmword [str.R_Q]
xor ebx, ebx
movups xmmword [esp + 0x80], xmm0
cmp edi, 2
jl 0x100c1d50
movaps xmm0, xmmword [str.0000000000000000]
lea edx, [esp + 0x84]
movaps xmm4, xmmword [0x101eb860]
movaps xmm3, xmmword [0x101ebc20]
movaps xmm5, xmmword [0x101eb8c0]
movaps xmmword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x70]
movd xmm0, ebx
lea eax, [ebx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + ebx + 0x80]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ebx + 0x80], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebx + edx]
xorps xmm1, xmm0
movd dword [ebx + edx], xmm1
add ebx, 8
cmp ebx, 0x10
jl 0x100c1c50
cmp ebx, 0x11
jge 0x100c1d7b
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x80], cl
inc ebx
cmp ebx, 0x11
jl 0x100c1d50
push str._by
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x154]
call fcn.1001fbf0
mov edx, eax
lea ecx, [esp + 0x1b0]
call fcn.10030150
mov edx, eax
lea ecx, [esp + 0xd4]
call fcn.100236f0
push esi
mov edx, eax
lea ecx, [esp + 0x11c]
call fcn.10023740
push dword [esp + 0x44]
mov edx, eax
lea ecx, [esp + 0x50]
call fcn.10023740
push dword [esp + 0x18]
mov edx, eax
lea ecx, [esp + 0x194]
call fcn.10023740
push dword [esp + 0x64]
mov edx, eax
lea ecx, [esp + 0x17c]
call fcn.10023740
push eax
lea ecx, [esp + 0xa4]
call fcn.1001fa80
lea ecx, [esp + 0x178]
call fcn.10001f30
lea ecx, [esp + 0x190]
call fcn.10001f30
lea ecx, [esp + 0x4c]
call fcn.10001f30
lea ecx, [esp + 0x118]
call fcn.10001f30
lea ecx, [esp + 0xd0]
call fcn.10001f30
lea ecx, [esp + 0x1a8]
call fcn.10001f30
lea ecx, [esp + 0x148]
call fcn.10001f30
lea ecx, [esp + 0x130]
call fcn.10001f30
lea ecx, [esp + 0xe8]
call fcn.10001f30
lea ecx, [esp + 0x160]
call fcn.10001f30
lea ecx, [esp + 0xb8]
call fcn.10001f30
lea ecx, [esp + 0x100]
jmp 0x100c3c75
mov eax, dword [0x10214408]
test byte [eax + 0x356c], 0x10
je 0x100c3c7a
mov eax, dword [0x10214410]
xor ebx, ebx
mov esi, dword [eax + 0x10]
mov eax, dword [0x101dd41c]
mov dword [esp + 0x18], eax
mov ax, word [0x101dd420]
mov word [esp + 0x1c], ax
mov al, byte [0x101dd422]
mov byte [esp + 0x1e], al
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 7
jl 0x100c1ed0
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x60], 0
movups xmmword [esp + 0x4c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c1f10
sub ecx, edx
lea eax, [esp + 0x18]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.10026930
cmp dword [esp + 0x60], 0xf
lea edx, [esp + 0x4c]
mov eax, dword [edi]
mov ecx, edi
cmova edx, dword [esp + 0x4c]
push 0
push edx
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov ecx, dword [esp + 0x60]
mov esi, eax
cmp ecx, 0xf
jbe 0x100c1f84
mov edx, dword [esp + 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c1f7a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d6a
push ecx
push edx
call fcn.1018e573
add esp, 8
test esi, esi
je 0x100c3c7a
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
test ecx, ecx
je 0x100c3c7a
call fcn.1007c1e0
cmp esi, eax
je 0x100c3c7a
mov eax, dword [0x10214410]
push esi
mov ecx, dword [eax + 0x18]
call fcn.1007c1d0
mov ebx, eax
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x100c3c7a
mov ecx, 0x9e167e91
call fcn.100c68f0
mov edx, dword [0x10215cf4]
mov esi, eax
mov ecx, 0x9e167e91
add esi, dword [edx]
call fcn.100c68f0
mov ecx, dword [eax + ebx]
cmp ecx, dword [esi]
je 0x100c3c7a
mov eax, dword [str.GTSC__6]
xor ebx, ebx
mov dword [esp + 0x64], eax
mov ax, word [0x101dfbe0]
mov word [esp + 0x68], ax
mov al, byte [0x101dfbe2]
mov byte [esp + 0x6a], al
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x64], cl
inc ebx
cmp ebx, 7
jl 0x100c2010
push ecx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0xc0]
call fcn.1001fbf0
mov ecx, eax
call fcn.10006340
push eax
mov ecx, edi
call fcn.100c1360
push eax
lea ecx, [esp + 0x134]
call fcn.1001fbf0
lea ecx, [esp + 0xb8]
call fcn.10001f30
push ecx
lea ecx, [esp + 0x1c4]
call fcn.1001f3a0
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xb8]
push eax
call fcn.10034d10
mov edx, eax
lea ecx, [esp + 0x1c0]
call fcn.100c4ad0
mov edx, str._bought
mov ecx, eax
call fcn.100b2280
lea edx, [esp + 0x130]
mov ecx, eax
call fcn.100c4ad0
lea ecx, [esp + 0xb8]
call fcn.10001f30
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0x1c4]
call fcn.1001f300
mov ecx, eax
call fcn.10006340
push eax
lea ecx, [esp + 0xa4]
call fcn.1001fa50
lea ecx, [esp + 0xb8]
call fcn.10001f30
lea ecx, [esp + 0x1c0]
call fcn.10005660
lea ecx, [esp + 0x130]
jmp 0x100c3c75
mov eax, dword [0x10214410]
xor ebx, ebx
mov esi, dword [eax + 0x10]
mov eax, dword [0x101dd41c]
mov dword [esp + 0x18], eax
mov ax, word [0x101dd420]
mov word [esp + 0x1c], ax
mov al, byte [0x101dd422]
mov byte [esp + 0x1e], al
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 7
jl 0x100c2130
mov eax, dword [edi]
lea ecx, [esp + 0x18]
push 0
push ecx
mov ecx, edi
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov ecx, dword [0x10214410]
xor ebx, ebx
movq xmm0, qword [str.QEFRWSE8]
mov dword [esp + 0x44], eax
mov esi, dword [ecx + 0x10]
mov cl, byte [0x101dd4a4]
movq qword [esp + 0x18], xmm0
mov byte [esp + 0x20], cl
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 9
jl 0x100c2192
mov eax, dword [edi]
lea ecx, [esp + 0x18]
push 0
push ecx
mov ecx, edi
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov cx, word [0x101df0ac]
mov esi, eax
movq xmm0, qword [str.TUlPW_LQ:]
xor ebx, ebx
mov word [esp + 0x78], cx
mov cl, byte [0x101df0ae]
movq qword [esp + 0x70], xmm0
mov byte [esp + 0x7a], cl
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x70], cl
inc ebx
cmp ebx, 0xb
jl 0x100c21f5
mov eax, dword [edi]
lea ecx, [esp + 0x70]
push 0
push ecx
mov ecx, edi
mov eax, dword [eax + 0x18]
call eax
mov edx, eax
lea ecx, [esp + 0x100]
call fcn.10003bf0
movq xmm0, qword [str.XXFTFZCG8]
xor ebx, ebx
mov al, byte [0x101dfbec]
movq qword [esp + 0x18], xmm0
mov byte [esp + 0x20], al
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 9
jl 0x100c2250
mov eax, dword [edi]
lea ecx, [esp + 0x18]
push 0
push ecx
mov ecx, edi
mov eax, dword [eax + 0x18]
call eax
cmp eax, 7
ja case.default.0x100c228a
jmp dword [eax*4 + 0x100c3d94]
mov eax, dword [str.generic]
mov dword [esp + 0x2c], eax
mov ax, word [0x101c4454]
mov word [esp + 0x30], ax
mov al, byte [0x101c4456]
jmp 0x100c23d2
xorps xmm0, xmm0
mov edi, 4
movups xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x2c], 0x64616568
mov byte [esp + 0x30], 0
jmp 0x100c23e9
mov eax, dword [str.chest]
xorps xmm0, xmm0
movups xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x2c], eax
mov edi, 5
mov al, byte [0x101dfb10]
mov byte [esp + 0x30], al
mov byte [esp + 0x31], 0
jmp 0x100c23e9
mov eax, dword [str.stomach]
mov dword [esp + 0x2c], eax
mov ax, word [0x101dfb18]
mov word [esp + 0x30], ax
mov al, byte [0x101dfb1a]
jmp 0x100c23d2
xorps xmm0, xmm0
mov edi, 8
movups xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x2c], 0x7466656c
mov dword [esp + 0x30], 0x6d726120
mov byte [esp + 0x34], 0
jmp 0x100c23e9
mov al, byte [0x101dfb24]
xorps xmm0, xmm0
movups xmmword [esp + 0x2c], xmm0
mov edi, 9
mov byte [esp + 0x34], al
movq xmm0, qword [str.right_arm]
movq qword [esp + 0x2c], xmm0
mov byte [esp + 0x35], 0
jmp 0x100c23e9
xorps xmm0, xmm0
mov edi, 8
movups xmmword [esp + 0x2c], xmm0
mov dword [esp + 0x2c], 0x7466656c
mov dword [esp + 0x30], 0x67656c20
mov byte [esp + 0x34], 0
jmp 0x100c23e9
mov al, byte [0x101dfb34]
xorps xmm0, xmm0
movups xmmword [esp + 0x2c], xmm0
mov edi, 9
mov byte [esp + 0x34], al
movq xmm0, qword [str.right_leg]
movq qword [esp + 0x2c], xmm0
mov byte [esp + 0x35], 0
jmp 0x100c23e9
mov eax, dword [str.unknown]
mov dword [esp + 0x2c], eax
mov ax, word [0x101c4438]
mov word [esp + 0x30], ax
mov al, byte [0x101c443a]
xorps xmm0, xmm0
mov byte [esp + 0x32], al
movlpd qword [esp + 0x34], xmm0
mov edi, 7
mov byte [esp + 0x33], 0
mov eax, dword [0x10215cf4]
mov ebx, 0xf
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ebx
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
cmp dword [esp + 0x44], eax
je 0x100c2ef9
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
cmp esi, eax
jne 0x100c2ef9
mov eax, dword [0x10214408]
test byte [eax + 0x356c], 1
jne 0x100c2478
mov ecx, dword [esp + 0x114]
cmp ecx, ebx
jbe 0x100c3c7a
mov edx, dword [esp + 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c2f73
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d6f
jmp 0x100c2f73
mov eax, dword [0x10214410]
push dword [esp + 0x44]
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [esp + 0x44], eax
test eax, eax
jne 0x100c24a8
lea ecx, [esp + 0x2c]
call fcn.10001f30
lea ecx, [esp + 0x100]
jmp 0x100c3c75
lea ecx, [esp + 0x130]
call fcn.1001fd20
mov ax, word [0x101df0ac]
xor ebx, ebx
movq xmm0, qword [str.TUlPW_LQ:]
mov word [esp + 0x78], ax
mov al, byte [0x101df0ae]
movq qword [esp + 0x70], xmm0
mov byte [esp + 0x7a], al
nop dword [eax + eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x70], cl
inc ebx
cmp ebx, 0xb
jl 0x100c24e0
push ecx
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x74]
push eax
call fcn.1009fb50
mov ecx, dword [esp + 0x44]
mov esi, eax
call fcn.1007c240
sub eax, esi
jns 0x100c26d0
movups xmm0, xmmword [0x101dfbfc]
movups xmmword [esp + 0x18], xmm0
psrldq xmm0, 0xf
movd eax, xmm0
test al, al
je 0x100c269f
xor ebx, ebx
cmp dword [0x10215510], 2
jl 0x100c2677
movaps xmm0, xmmword [str.0000000000000000]
lea esi, [esp + 0x1c]
movaps xmm4, xmmword [0x101eb860]
xor ecx, ecx
movaps xmm3, xmmword [0x101ebc20]
movaps xmm5, xmmword [0x101eb8c0]
movaps xmmword [esp + 0x70], xmm0
mov edx, dword [esp + 0x70]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esp + ecx + 0x18]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ecx + 0x18], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [esi + ecx]
xorps xmm1, xmm0
movd dword [esi + ecx], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x100c2580
jmp 0x100c269f
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 0x10
jl 0x100c2677
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xbc]
call fcn.1001fbf0
mov ecx, eax
call fcn.10006340
push eax
lea ecx, [esp + 0x134]
call fcn.1001fa50
lea ecx, [esp + 0xb8]
jmp 0x100c28f9
mov eax, dword [0x101dfb84]
xor ebx, ebx
cmp dword [0x10215510], 2
movq xmm0, qword [0x101dfb7c]
mov dword [esp + 0x20], eax
mov ax, word [0x101dfb88]
mov word [esp + 0x24], ax
mov al, byte [0x101dfb8a]
movq qword [esp + 0x18], xmm0
mov byte [esp + 0x26], al
jl 0x100c2801
movaps xmm2, xmmword [0x101eb860]
mov ebx, 8
movaps xmm4, xmmword [0x101ebc20]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
mov eax, dword [str.0000000000000000]
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101eb8c0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x101eb8a0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x101dfb7c]
xorps xmm1, xmm0
movaps xmm0, xmm2
movd dword [esp + 0x18], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x101eb8c0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [esp + 0x1c]
xorps xmm1, xmm0
movd dword [esp + 0x1c], xmm1
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 0xf
jl 0x100c2801
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14c]
call fcn.1001fbf0
mov ecx, eax
call fcn.10006340
mov cx, word [0x101df0ac]
xor ebx, ebx
movq xmm0, qword [str.TUlPW_LQ:]
mov word [esp + 0x78], cx
mov cl, byte [0x101df0ae]
mov dword [esp + 0x18], eax
movq qword [esp + 0x70], xmm0
mov byte [esp + 0x7a], cl
nop dword [eax + eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x70], cl
inc ebx
cmp ebx, 0xb
jl 0x100c2870
push ecx
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x74]
push eax
call fcn.1009fb50
mov ecx, dword [esp + 0x44]
mov esi, eax
call fcn.1007c240
sub eax, esi
lea ecx, [esp + 0x160]
mov edx, eax
call fcn.10003bf0
push dword [esp + 0x18]
mov edx, eax
lea ecx, [esp + 0xbc]
call fcn.100236f0
push eax
lea ecx, [esp + 0x134]
call fcn.1001fa80
lea ecx, [esp + 0xb8]
call fcn.10001f30
lea ecx, [esp + 0x160]
call fcn.10001f30
lea ecx, [esp + 0x148]
call fcn.10001f30
mov eax, dword [0x101dfb5c]
mov dword [esp + 0x18], eax
mov ax, word [0x101dfb60]
mov word [esp + 0x1c], ax
test ah, ah
je 0x100c2941
xor ebx, ebx
nop dword [eax + eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 6
jl 0x100c2920
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x17c]
call fcn.1001fbf0
mov ecx, eax
xor ebx, ebx
mov eax, dword [0x101dfba0]
mov dword [esp + 0x18], eax
mov al, byte [0x101dfba4]
mov byte [esp + 0x1c], al
call fcn.10006340
mov dword [esp + 0x64], eax
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 5
jl 0x100c2971
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14c]
call fcn.1001fbf0
mov ecx, eax
call fcn.10006340
mov ecx, dword [esp + 0x44]
mov esi, eax
lea eax, [esp + 0x160]
push eax
call fcn.10034d10
mov ecx, dword [0x101dfbc8]
xor ebx, ebx
mov dword [esp + 0x44], ecx
mov cl, byte [0x101dfbcc]
mov dword [esp + 0x18], eax
mov byte [esp + 0x48], cl
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x44], cl
inc ebx
cmp ebx, 5
jl 0x100c29d7
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0xbc]
call fcn.1001fbf0
push dword [esp + 0x18]
lea ecx, [esp + 0x194]
push eax
push dword [esp + 0x20]
call fcn.10028920
push esi
lea ecx, [esp + 0x194]
call fcn.1001f970
mov dword [esp + 0x128], 0
lea edx, [esp + 0x2c]
mov dword [esp + 0x12c], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x118], xmm0
push edi
movups xmm0, xmmword [eax]
mov ebx, 0xf
push edx
movups xmmword [esp + 0x120], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x130], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [esp + 0x130]
mov eax, dword [esp + 0x134]
sub eax, ecx
mov dword [esp + 0x20], ecx
cmp edi, eax
ja 0x100c2ad9
cmp dword [esp + 0x134], ebx
lea esi, [esp + 0x120]
lea eax, [edi + ecx]
cmova esi, dword [esp + 0x120]
mov dword [esp + 0x130], eax
lea eax, [esi + ecx]
push eax
call fcn.1018faa0
mov ecx, dword [esp + 0x24]
lea eax, [edi + esi]
add esp, 0xc
mov byte [eax + ecx], 0
lea eax, [esp + 0x118]
jmp 0x100c2aee
push dword [esp + 0x20]
lea ecx, [esp + 0x124]
push edi
call fcn.10027540
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xf8], 0
lea ecx, [esp + 0xe8]
mov dword [esp + 0xfc], 0
xorps xmm0, xmm0
movups xmmword [esp + 0xe8], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xe8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0xf8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push dword [esp + 0x64]
call fcn.1001f970
mov dword [esp + 0x90], 0
lea edx, [esp + 0x100]
mov dword [esp + 0x94], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x80], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x80], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x90], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
cmp dword [esp + 0x114], 0xf
mov ecx, dword [esp + 0x90]
cmova edx, dword [esp + 0x100]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x110]
sub eax, ecx
mov dword [esp + 0x18], ecx
push edi
push edx
cmp edi, eax
ja 0x100c2c0d
cmp dword [esp + 0x9c], 0xf
lea esi, [esp + 0x88]
lea eax, [ecx + edi]
cmova esi, dword [esp + 0x88]
mov dword [esp + 0x98], eax
lea eax, [esi + ecx]
push eax
call fcn.1018faa0
mov ecx, dword [esp + 0x24]
lea eax, [edi + esi]
add esp, 0xc
mov byte [eax + ecx], 0
lea eax, [esp + 0x80]
jmp 0x100c2c1e
push dword [esp + 0x20]
lea ecx, [esp + 0x8c]
push edi
call fcn.10027540
mov dword [esp + 0xe0], 0
xorps xmm0, xmm0
movups xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xe4], 0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xd0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0xe0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [esp + 0xe4]
mov eax, edx
mov ecx, dword [esp + 0xe0]
sub eax, ecx
cmp eax, 2
jb 0x100c2cb3
lea eax, [ecx + 2]
cmp edx, 0xf
mov dword [esp + 0xe0], eax
mov edx, 0x2820
lea eax, [esp + 0xd0]
cmova eax, dword [esp + 0xd0]
mov word [eax + ecx], dx
mov byte [eax + ecx + 2], 0
lea eax, [esp + 0xd0]
jmp 0x100c2ccc
push 2
push 0x101dfb28
push dword [esp + 0x20]
lea ecx, [esp + 0xdc]
push 2
call fcn.10027540
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x60], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x4c], xmm0
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x5c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [esp + 0x130]
push eax
call fcn.1001f9e0
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
movups xmmword [esp + 0x70], xmm0
movq qword [esp + 0x18], xmm1
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [esp + 0xb4]
cmp ecx, 0xf
jbe 0x100c2d84
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c2d6f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d74
push ecx
push edx
call fcn.1018e573
movups xmm0, xmmword [esp + 0x78]
add esp, 8
movq xmm1, qword [esp + 0x18]
mov ecx, dword [esp + 0x60]
movq qword [esp + 0xb0], xmm1
movups xmmword [esp + 0xa0], xmm0
cmp ecx, 0xf
jbe 0x100c2dcb
mov edx, dword [esp + 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c2dc1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d74
push ecx
push edx
call fcn.1018e573
add esp, 8
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0xf
mov byte [esp + 0x4c], 0
cmp ecx, 0xf
jbe 0x100c2e1c
mov edx, dword [esp + 0xd0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c2e12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d74
push ecx
push edx
call fcn.1018e573
add esp, 8
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0xf
mov byte [esp + 0xd0], 0
cmp ecx, 0xf
jbe 0x100c2e76
mov edx, dword [esp + 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c2e6c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d74
push ecx
push edx
call fcn.1018e573
add esp, 8
lea ecx, [esp + 0xe8]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0xf
mov byte [esp + 0x80], 0
call fcn.10001f30
lea ecx, [esp + 0x118]
call fcn.10001f30
lea ecx, [esp + 0x190]
call fcn.10001f30
lea ecx, [esp + 0xb8]
call fcn.10001f30
lea ecx, [esp + 0x160]
call fcn.10001f30
lea ecx, [esp + 0x148]
call fcn.10001f30
lea ecx, [esp + 0x178]
call fcn.10001f30
lea ecx, [esp + 0x130]
call fcn.10001f30
jmp 0x100c3185
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
cmp dword [esp + 0x44], eax
jne 0x100c3185
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
cmp esi, eax
je 0x100c3185
mov eax, dword [0x10214408]
test byte [eax + 0x356c], 2
jne 0x100c2f82
mov ecx, dword [esp + 0x114]
cmp ecx, 0xf
jbe 0x100c3c7a
mov edx, dword [esp + 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c2f73
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
push ecx
push edx
call fcn.1018e573
add esp, 8
jmp 0x100c3c7a
mov eax, dword [0x10214410]
push esi
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov esi, eax
test esi, esi
jne 0x100c2fad
lea ecx, [esp + 0x2c]
call fcn.10001f30
lea ecx, [esp + 0x100]
jmp 0x100c3c75
mov eax, dword [0x101dfba0]
xor ebx, ebx
mov dword [esp + 0x18], eax
mov al, byte [0x101dfba4]
mov byte [esp + 0x1c], al
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 5
jl 0x100c2fc1
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x50]
call fcn.1001fbf0
mov ecx, eax
call fcn.10006340
mov ecx, dword [0x101dfb5c]
mov dword [esp + 0x64], ecx
mov cx, word [0x101dfb60]
mov dword [esp + 0x18], eax
mov word [esp + 0x68], cx
test ch, ch
je 0x100c3038
xor ebx, ebx
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x64], cl
inc ebx
cmp ebx, 6
jl 0x100c3017
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xec]
call fcn.1001fbf0
mov ecx, eax
call fcn.10006340
mov edi, eax
mov ecx, esi
lea eax, [esp + 0x130]
push eax
call fcn.10034d10
movq xmm0, qword [str.XD_G]
mov esi, eax
mov cl, byte [0x101dfbd8]
xor ebx, ebx
movq qword [esp + 0x64], xmm0
mov byte [esp + 0x6c], cl
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x64], cl
inc ebx
cmp ebx, 9
jl 0x100c3080
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x194]
call fcn.1001fbf0
push esi
mov edx, eax
lea ecx, [esp + 0x17c]
call fcn.10023740
lea ecx, [esp + 0x100]
mov edx, eax
push ecx
push edi
lea ecx, [esp + 0x1b0]
call fcn.100236f0
mov edx, eax
lea ecx, [esp + 0x14c]
call fcn.10030150
lea ecx, [esp + 0x2c]
mov edx, eax
push ecx
push dword [esp + 0x1c]
lea ecx, [esp + 0x168]
call fcn.100236f0
mov edx, eax
lea ecx, [esp + 0xbc]
call fcn.10030150
push eax
lea ecx, [esp + 0xa4]
call fcn.1001fa80
lea ecx, [esp + 0xb8]
call fcn.10001f30
lea ecx, [esp + 0x160]
call fcn.10001f30
lea ecx, [esp + 0x148]
call fcn.10001f30
lea ecx, [esp + 0x1a8]
call fcn.10001f30
lea ecx, [esp + 0x178]
call fcn.10001f30
lea ecx, [esp + 0x190]
call fcn.10001f30
lea ecx, [esp + 0x130]
call fcn.10001f30
lea ecx, [esp + 0xe8]
call fcn.10001f30
lea ecx, [esp + 0x4c]
call fcn.10001f30
mov ebx, dword [esp + 0x40]
cmp ebx, 0xf
jbe 0x100c31b7
mov ecx, dword [esp + 0x2c]
inc ebx
mov eax, ecx
cmp ebx, 0x1000
jb 0x100c31ad
mov ecx, dword [eax - 4]
add ebx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
push ebx
push ecx
call fcn.1018e573
add esp, 8
mov ecx, dword [esp + 0x114]
cmp ecx, 0xf
jbe 0x100c3c7a
mov edx, dword [esp + 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c31ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
push ecx
push edx
call fcn.1018e573
add esp, 8
jmp 0x100c3c7a
mov eax, dword [0x10214408]
test byte [eax + 0x356c], 8
je 0x100c3c7a
mov eax, dword [0x10214410]
xor ebx, ebx
mov esi, dword [eax + 0x10]
mov eax, dword [0x101dd41c]
mov dword [esp + 0x18], eax
mov ax, word [0x101dd420]
mov word [esp + 0x1c], ax
mov al, byte [0x101dd422]
mov byte [esp + 0x1e], al
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 7
jl 0x100c3235
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x60], 0
movups xmmword [esp + 0x4c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c3275
sub ecx, edx
lea eax, [esp + 0x18]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.10026930
cmp dword [esp + 0x60], 0xf
lea edx, [esp + 0x4c]
mov eax, dword [edi]
mov ecx, edi
cmova edx, dword [esp + 0x4c]
push 0
push edx
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov ecx, dword [esp + 0x60]
mov edi, eax
cmp ecx, 0xf
jbe 0x100c32e9
mov edx, dword [esp + 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c32df
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d79
push ecx
push edx
call fcn.1018e573
add esp, 8
test edi, edi
je 0x100c3c7a
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
test ecx, ecx
je 0x100c3c7a
mov eax, dword [0x10214410]
add ecx, 8
mov esi, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea ecx, [esp + 0x1c0]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
or ecx, 0xffffffff
test al, al
cmovne ecx, dword [esp + 0x250]
cmp edi, ecx
je 0x100c3c7a
mov eax, dword [0x10214410]
push edi
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
test edi, edi
je 0x100c3c7a
mov eax, dword [0x101dfc1c]
movups xmm0, xmmword [0x101dfc0c]
mov dword [esp + 0x3c], eax
mov ax, word [0x101dfc20]
mov word [esp + 0x40], ax
movups xmmword [esp + 0x2c], xmm0
test ah, ah
je 0x100c3c18
xor ebx, ebx
cmp dword [0x10215510], 2
jl 0x100c34b1
movaps xmm0, xmmword [str.0000000000000000]
lea edx, [esp + 0x30]
movaps xmm4, xmmword [0x101eb860]
movaps xmm3, xmmword [0x101ebc20]
movaps xmm5, xmmword [0x101eb8c0]
movaps xmmword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x70]
movd xmm0, ebx
lea eax, [ebx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + ebx + 0x2c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ebx + 0x2c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebx + edx]
xorps xmm1, xmm0
movd dword [ebx + edx], xmm1
add ebx, 8
cmp ebx, 0x10
jl 0x100c33b3
cmp ebx, 0x16
jge 0x100c3c18
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x2c], cl
inc ebx
cmp ebx, 0x16
jl 0x100c34b1
jmp 0x100c3c18
cmp ecx, 0xc3c7d299
je 0x100c393b
cmp ecx, 0xec398ed7
jne 0x100c3ca8
mov eax, dword [0x10214408]
test byte [eax + 0x356c], 4
je 0x100c3c7a
mov eax, dword [0x10214410]
xor ebx, ebx
mov esi, dword [eax + 0x10]
mov eax, dword [0x101dd41c]
mov dword [esp + 0x18], eax
mov ax, word [0x101dd420]
mov word [esp + 0x1c], ax
mov al, byte [0x101dd422]
mov byte [esp + 0x1e], al
nop
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 7
jl 0x100c3530
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x60], 0
movups xmmword [esp + 0x4c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c3570
sub ecx, edx
lea eax, [esp + 0x18]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.10026930
cmp dword [esp + 0x60], 0xf
lea edx, [esp + 0x4c]
mov eax, dword [edi]
mov ecx, edi
cmova edx, dword [esp + 0x4c]
push 0
push edx
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov ecx, dword [esp + 0x60]
mov edi, eax
cmp ecx, 0xf
jbe 0x100c35e4
mov edx, dword [esp + 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c35da
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d7e
push ecx
push edx
call fcn.1018e573
add esp, 8
mov eax, dword [0x10214410]
mov esi, dword [eax + 0x10]
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea ecx, [esp + 0x1c0]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
or ecx, 0xffffffff
test al, al
cmovne ecx, dword [esp + 0x250]
cmp edi, ecx
je 0x100c3c7a
mov eax, dword [0x10214410]
push edi
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x100c3c7a
lea ecx, [esp + 0x1c0]
push ecx
mov ecx, eax
call fcn.10182550
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x60], 0
movups xmmword [esp + 0x4c], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c3670
sub ecx, edx
lea eax, [esp + 0x1c0]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.10026930
movups xmm0, xmmword [str.XAGURS]
mov ax, word [0x101dfc34]
mov word [esp + 0x3c], ax
movups xmmword [esp + 0x2c], xmm0
test ah, ah
je 0x100c3808
xor ebx, ebx
cmp dword [0x10215510], 2
jl 0x100c37e0
movaps xmm0, xmmword [str.0000000000000000]
lea edx, [esp + 0x30]
movaps xmm4, xmmword [0x101eb860]
movaps xmm3, xmmword [0x101ebc20]
movaps xmm5, xmmword [0x101eb8c0]
movaps xmmword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x70]
movd xmm0, ebx
lea eax, [ebx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + ebx + 0x2c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ebx + 0x2c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebx + edx]
xorps xmm1, xmm0
movd dword [ebx + edx], xmm1
add ebx, 8
cmp ebx, 0x10
jl 0x100c36e2
cmp ebx, 0x12
jge 0x100c3808
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x2c], cl
inc ebx
cmp ebx, 0x12
jl 0x100c37e0
xorps xmm0, xmm0
mov dword [esp + 0xf8], 0
lea ecx, [esp + 0x2c]
mov dword [esp + 0xfc], 0
movups xmmword [esp + 0xe8], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c3830
sub ecx, edx
lea eax, [esp + 0x2c]
push ecx
push eax
lea ecx, [esp + 0xf0]
call fcn.10026930
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x20]
lea ecx, [esp + 0x184]
call fcn.10028920
mov ecx, dword [esp + 0xb4]
cmp ecx, 0xf
jbe 0x100c38a4
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c389a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
push ecx
push edx
call fcn.1018e573
add esp, 8
movups xmm0, xmmword [esp + 0x178]
mov ecx, dword [esp + 0xfc]
movups xmmword [esp + 0xa0], xmm0
movq xmm0, qword [esp + 0x188]
movq qword [esp + 0xb0], xmm0
cmp ecx, 0xf
jbe 0x100c3902
mov edx, dword [esp + 0xe8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c38f8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
push ecx
push edx
call fcn.1018e573
add esp, 8
mov ecx, dword [esp + 0x60]
cmp ecx, 0xf
jbe 0x100c3c7a
mov edx, dword [esp + 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c2f73
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d83
jmp 0x100c2f73
mov eax, dword [0x10214408]
test byte [eax + 0x356c], 8
je 0x100c3c7a
mov eax, dword [0x10214410]
xor ebx, ebx
mov esi, dword [eax + 0x10]
mov eax, dword [0x101dd41c]
mov dword [esp + 0x18], eax
mov ax, word [0x101dd420]
mov word [esp + 0x1c], ax
mov al, byte [0x101dd422]
mov byte [esp + 0x1e], al
mov eax, 0x5397829d
mov cl, bl
mul ebx
shr edx, 4
movsx eax, dl
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x18], cl
inc ebx
cmp ebx, 7
jl 0x100c3974
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
lea ecx, [esp + 0x18]
mov dword [esp + 0x60], 0
movups xmmword [esp + 0x4c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c39b4
sub ecx, edx
lea eax, [esp + 0x18]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.10026930
cmp dword [esp + 0x60], 0xf
lea edx, [esp + 0x4c]
mov eax, dword [edi]
mov ecx, edi
cmova edx, dword [esp + 0x4c]
push 0
push edx
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [esi]
mov ecx, esi
push eax
mov edx, dword [edx + 0x24]
call edx
mov ecx, dword [esp + 0x60]
mov edi, eax
cmp ecx, 0xf
jbe 0x100c3a28
mov edx, dword [esp + 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c3a1e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d88
push ecx
push edx
call fcn.1018e573
add esp, 8
test edi, edi
je 0x100c3c7a
mov eax, dword [0x10215cf4]
mov ecx, dword [eax]
test ecx, ecx
je 0x100c3c7a
mov eax, dword [0x10214410]
add ecx, 8
mov esi, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esi]
lea ecx, [esp + 0x1c0]
push ecx
push eax
mov ecx, esi
mov edx, dword [edx + 0x20]
call edx
or ecx, 0xffffffff
test al, al
cmovne ecx, dword [esp + 0x250]
cmp edi, ecx
je 0x100c3c7a
mov eax, dword [0x10214410]
push edi
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
test edi, edi
je 0x100c3c7a
mov eax, dword [0x101dfb74]
movups xmm0, xmmword [0x101dfb64]
mov dword [esp + 0x3c], eax
mov ax, word [0x101dfb78]
mov word [esp + 0x40], ax
movups xmmword [esp + 0x2c], xmm0
test ah, ah
je 0x100c3c18
xor ebx, ebx
cmp dword [0x10215510], 2
jl 0x100c3bf0
movaps xmm0, xmmword [str.0000000000000000]
lea edx, [esp + 0x30]
movaps xmm4, xmmword [0x101eb860]
movaps xmm3, xmmword [0x101ebc20]
movaps xmm5, xmmword [0x101eb8c0]
movaps xmmword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x70]
movd xmm0, ebx
lea eax, [ebx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [esp + ebx + 0x2c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [esp + ebx + 0x2c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x101eb980]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebx + edx]
xorps xmm1, xmm0
movd dword [ebx + edx], xmm1
add ebx, 8
cmp ebx, 0x10
jl 0x100c3af2
cmp ebx, 0x16
jge 0x100c3c18
nop dword [eax]
mov eax, 0x5397829d
mov cl, bl
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movsx eax, al
imul eax, eax, 0x31
sub cl, al
add cl, 0x30
xor byte [esp + ebx + 0x2c], cl
inc ebx
cmp ebx, 0x16
jl 0x100c3bf0
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x14c]
call fcn.1001fbf0
mov esi, eax
mov ecx, edi
lea eax, [esp + 0x160]
push eax
call fcn.10034d10
push esi
mov edx, eax
lea ecx, [esp + 0xbc]
call fcn.10023740
push eax
lea ecx, [esp + 0xa4]
call fcn.1001fa80
lea ecx, [esp + 0xb8]
call fcn.10001f30
lea ecx, [esp + 0x160]
call fcn.10001f30
lea ecx, [esp + 0x148]
call fcn.10001f30
cmp dword [esp + 0xb0], 0
je 0x100c3ca8
lea eax, [esp + 0x98]
mov ecx, 0x103d88b8
push eax
call fcn.100c4830
lea eax, [esp + 0x98]
mov ecx, 0x103d88a4
push eax
call fcn.100c4830
mov ecx, dword [esp + 0xb4]
cmp ecx, 0xf
jbe 0x100c3ce4
mov edx, dword [esp + 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100c3cda
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c3d8d
push ecx
push edx
call fcn.1018e573
add esp, 8
push 0x103dbebc
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0xf
mov byte [esp + 0xa4], 0
call fcn.1018d9dd
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x310]
xor ecx, esp
call fcn.1018e27a
mov esp, ebp
pop ebp
ret
mov ecx, 0x103d88b8
call fcn.1003da10
mov ecx, 0x103d88a4
call fcn.1003da10
mov ecx, dword [esp + 0x31c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1018e27a
mov esp, ebp
pop ebp
ret
push 5
call fcn.1018dbec
push 6
mov dword [0x103dbee8], 0x7ffffffe
call fcn.1018dbec
call fcn.101936a6
call fcn.101936a6
call fcn.101936a6
call fcn.101936a6
call fcn.101936a6
call fcn.101936a6
call fcn.101936a6
call fcn.101936a6
call fcn.101936a6
nop
xchg ecx, eax
and cl, byte [eax + edx]
scasd eax, dword es:[edi]
and cl, byte [eax + edx]
into
and cl, byte [eax + edx]
mul dword [edx]
or al, 16
adc eax, 0x3c100c23
and ecx, dword [eax + edx]
push 0x23
or al, 16
mov fs, word [ebx]
or al, 16
int3