Function at 0x414ea0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7f5a9f
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x428
mov eax, dword [0x908074]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x428], edx
push ecx
lea ecx, [ebp - 0xac]
call fcn.00405bd0
lea eax, [ebp - 0x94]
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xac]
push eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.0041b4a0
push fcn.00403ad0
push 1
push 0x18
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 2
push eax
call fcn.00479352
lea ecx, [ebp - 0x410]
call fcn.0069d310
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x410]
call fcn.0069df00
lea eax, [ebp - 0x411]
mov byte [ebp - 0x411], 0
push eax
lea ecx, [ebp - 0x410]
call fcn.0069df30
lea eax, [ebp - 0x420]
mov dword [ebp - 0x420], 0x3e8
push eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x41c], 0
call fcn.0041b160
push eax
lea ecx, [ebp - 0x410]
call fcn.0069ded0
mov ax, word [0x8cdc1c]
xor edx, edx
movq xmm0, qword [0x8cdc14]
mov word [ebp - 0x44], ax
mov al, byte [0x8cdc1e]
movq qword [ebp - 0x4c], xmm0
mov byte [ebp - 0x42], al
mov dword [ebp - 0x414], edx
nop dword [eax]
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x414]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x414]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x4c], cl
inc edx
mov dword [ebp - 0x414], edx
cmp edx, 0xb
jl 0x414fc0
xor edx, edx
lea edi, [ebp - 0x170]
cmp dword [0x1813edc], 2
lea eax, [ebp - 0x4c]
mov ecx, 0x1d
mov dword [ebp - 0x418], eax
mov esi, 0x8cdba0
mov dword [ebp - 0x414], edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [edx + 5]
lea esi, [edx + 0x1f]
jl 0x415180
movaps xmm0, xmmword [0x8d1cd0]
movaps xmm4, xmmword [0x8d1c50]
movaps xmm3, xmmword [0x8d1d00]
movaps xmm6, xmmword [0x8d1c90]
movd xmm5, ecx
movaps xmmword [ebp - 0x40], xmm0
mov ecx, dword [ebp - 0x40]
movd xmm7, esi
nop dword [eax + eax]
movd xmm0, edx
lea eax, [edx + 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
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d1cc0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x170]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + edx - 0x170], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d1cc0]
packuswb xmm1, xmm1
movd xmm0, ecx
paddb xmm1, xmm0
movd xmm0, dword [ebp + edx - 0x16c]
pxor xmm1, xmm0
movd dword [ebp + edx - 0x16c], xmm1
add edx, 8
cmp edx, 0x70
jl 0x415060
mov dword [ebp - 0x414], edx
cmp edx, 0x74
jge 0x4151bd
nop word [eax + eax]
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x414]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x414]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x170], cl
inc edx
mov dword [ebp - 0x414], edx
cmp edx, 0x74
jl 0x415180
lea eax, [ebp - 0x170]
mov dword [ebp - 0x424], eax
lea ecx, [ebp - 0xdc]
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00419270
lea eax, [ebp - 0xac]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xdc]
push eax
push ecx
lea ecx, [ebp - 0x420]
call fcn.00418fa0
push eax
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 5
call fcn.0069da10
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x420]
mov esi, dword [ebp - 0x420]
push dword [esi + 4]
call fcn.00419220
mov eax, dword [ebp - 0x420]
push 0x40
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x420]
mov dword [eax], esi
mov eax, dword [ebp - 0x420]
mov dword [eax + 8], esi
push dword [ebp - 0x420]
mov dword [ebp - 0x41c], 0
call fcn.00479074
add esp, 8
mov byte [ebp - 4], 3
lea eax, [ebp - 0xdc]
push fcn.0041b4d0
push 1
push 0x30
push eax
call fcn.00479352
lea eax, [ebp - 0x250]
push eax
lea ecx, [ebp - 0x410]
call fcn.0069d9c0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1f0], 0
jne 0x415d04
push ecx
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x420]
call fcn.00419320
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x420]
mov dword [ebp - 0x42c], edi
mov esi, dword [edi]
cmp esi, edi
je 0x415cbe
lea edi, [esi + 0x10]
push edi
lea ecx, [ebp - 0xdc]
call fcn.00405bd0
lea eax, [edi + 0x18]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0xc4]
call fcn.00405bd0
lea eax, [ebp - 0xdc]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0xac]
call fcn.00405bd0
lea eax, [ebp - 0xc4]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x94]
call fcn.00405bd0
mov byte [ebp - 4], 0xc
cmp byte [0x8cdc6b], 0
movups xmm0, xmmword [0x8cdc58]
mov eax, dword [0x8cdc68]
mov dword [ebp - 0x6c], eax
movups xmmword [ebp - 0x7c], xmm0
je 0x4154ae
xor ecx, ecx
cmp dword [0x1813edc], 2
jl 0x415484
movaps xmm0, xmmword [0x8d1cd0]
mov eax, 5
movaps xmm4, xmmword [0x8d1c50]
movaps xmm3, xmmword [0x8d1d00]
movaps xmm6, xmmword [0x8d1c90]
movd xmm5, eax
mov eax, 0x1f
movaps xmmword [ebp - 0x40], xmm0
mov edx, dword [ebp - 0x40]
movd xmm7, eax
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
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d1cc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x7c]
pxor xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x7c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d1cc0]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x78]
pxor xmm1, xmm0
movd dword [ebp + ecx - 0x78], xmm1
add ecx, 8
cmp ecx, 0x10
jl 0x415380
cmp ecx, 0x14
jge 0x4154ae
mov eax, 0x8fb823ef
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x39
sub dl, al
add dl, 0x36
xor byte [ebp + ecx - 0x7c], dl
inc ecx
cmp ecx, 0x14
jl 0x415484
lea edx, [ebp - 0x7c]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4154b4
mov eax, dword [ebp - 0xac]
sub edx, ecx
cmp dword [ebp - 0x98], 0x10
lea ecx, [ebp - 0xac]
mov edi, dword [ebp - 0x9c]
cmovae ecx, eax
mov dword [ebp - 0x424], eax
cmp edi, edx
jne 0x415931
mov eax, edi
lea edx, [ebp - 0x7c]
sub eax, 4
mov dword [ebp - 0x414], eax
jb 0x415514
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x415519
mov eax, dword [ebp - 0x414]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x414], eax
jae 0x4154f7
cmp eax, 0xfffffffc
je 0x415559
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x415552
cmp dword [ebp - 0x414], 0xfffffffd
je 0x415559
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x415552
cmp dword [ebp - 0x414], 0xfffffffe
je 0x415559
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x415552
cmp dword [ebp - 0x414], 0xffffffff
je 0x415559
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x415559
sbb eax, eax
or eax, 1
jmp 0x41555b
xor eax, eax
test eax, eax
jne 0x415931
mov ax, word [0x8cdc54]
movq xmm0, qword [0x8cdc4c]
movq qword [ebp - 0x68], xmm0
mov word [ebp - 0x60], ax
test ah, ah
je 0x4155ca
xor edx, edx
mov dword [ebp - 0x414], edx
nop word [eax + eax]
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x414]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x414]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x68], cl
inc edx
mov dword [ebp - 0x414], edx
cmp edx, 0xa
jl 0x415590
push ecx
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x94]
call fcn.00419080
mov ecx, eax
test ecx, ecx
js 0x415bcd
mov edx, dword [ebp - 0x84]
lea edi, [ecx + 9]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, edi
jb 0x415d73
mov eax, edx
sub edx, edi
sub eax, ecx
lea ecx, [eax - 9]
cmp edx, ecx
lea eax, [ebp - 0x94]
cmovb ecx, edx
cmp dword [ebp - 0x80], 0x10
push ecx
cmovae eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x40]
add eax, edi
push eax
call fcn.00406070
mov edi, dword [ebp - 0x428]
lea eax, [ebp - 0x40]
push eax
mov ecx, edi
call fcn.004051d0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x415677
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41566d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415d6e
push edx
push ecx
call fcn.00479074
add esp, 8
push ecx
push 0x8cda30
mov ecx, edi
call fcn.00419080
test eax, eax
js 0x4156f4
cmp dword [edi + 0x10], eax
mov ecx, edi
mov dword [ebp - 0x30], 0
cmovb eax, dword [edi + 0x10]
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
jb 0x4156ab
mov ecx, dword [edi]
push eax
push ecx
lea ecx, [ebp - 0x40]
call fcn.00406070
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.004051d0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x4156f4
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4156ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415d6e
push edx
push ecx
call fcn.00479074
add esp, 8
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push 0x8ccfb9
mov byte [ecx], 0
call fcn.00406070
mov byte [ebp - 4], 0xd
mov ax, word [0x8cdc48]
mov word [ebp - 0x414], ax
test ah, ah
je 0x41577d
xor edx, edx
mov dword [ebp - 0x418], edx
nop word [eax + eax]
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x418]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x418]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x414], cl
inc edx
mov dword [ebp - 0x418], edx
cmp edx, 2
jl 0x415740
sub esp, 0x18
lea ecx, [ebp - 0x414]
mov edx, esp
lea eax, [ecx + 1]
mov dword [ebp - 0x418], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4157a2
sub ecx, dword [ebp - 0x418]
lea eax, [ebp - 0x414]
push ecx
push eax
mov ecx, edx
call fcn.00406070
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.00411540
add esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
push 0x8ccfb9
mov byte [ecx], 0
call fcn.00406070
mov byte [ebp - 4], 0xe
mov ax, word [0x8cdc44]
mov word [ebp - 0x414], ax
test ah, ah
je 0x41584d
xor edx, edx
mov dword [ebp - 0x418], edx
nop dword [eax + eax]
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x418]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x418]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x414], cl
inc edx
mov dword [ebp - 0x418], edx
cmp edx, 2
jl 0x415810
sub esp, 0x18
lea ecx, [ebp - 0x414]
mov edx, esp
lea eax, [ecx + 1]
mov dword [ebp - 0x418], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415872
sub ecx, dword [ebp - 0x418]
lea eax, [ebp - 0x414]
push ecx
push eax
mov ecx, edx
call fcn.00406070
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.00411540
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.006a0280
add esp, 0x38
mov ecx, edi
push eax
call fcn.004051d0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x4158e2
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4158d8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415d6e
push edx
push ecx
call fcn.00479074
add esp, 8
mov edx, edi
lea ecx, [ebp - 0x40]
call fcn.0041afc0
push eax
mov ecx, edi
call fcn.004051d0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x415bcd
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415922
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415d6e
push edx
push ecx
call fcn.00479074
add esp, 8
jmp 0x415bcd
mov eax, dword [0x8cdc3c]
xor edx, edx
cmp dword [0x1813edc], 2
movq xmm0, qword [0x8cdc34]
mov dword [ebp - 0x54], eax
mov al, byte [0x8cdc40]
movq qword [ebp - 0x5c], xmm0
mov byte [ebp - 0x50], al
mov dword [ebp - 0x414], edx
jl 0x415a80
movaps xmm2, xmmword [0x8d1c50]
mov eax, 5
movaps xmm5, xmmword [0x8d1d00]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov edx, 8
pmuldq xmm0, xmm5
pmuldq xmm1, xmm5
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
movd xmm6, eax
psrad xmm1, xmm6
mov eax, 0x1f
mov dword [ebp - 0x414], edx
movaps xmm0, xmm1
movd xmm7, eax
mov eax, dword [0x8d1cd0]
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x8d1c90]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x8d1c60]
paddd xmm2, xmmword [0x8d1c50]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d1cc0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [0x8cdc34]
pxor xmm1, xmm0
movaps xmm0, xmm2
movd dword [ebp - 0x5c], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm5
pmuldq xmm1, xmm5
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm6
movaps xmm0, xmm1
psrld xmm0, xmm7
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x8d1c90]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
pand xmm1, xmmword [0x8d1cc0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ebp - 0x58]
pxor xmm1, xmm0
movd dword [ebp - 0x58], xmm1
nop
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x414]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x414]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x5c], cl
inc edx
mov dword [ebp - 0x414], edx
cmp edx, 0xd
jl 0x415a80
lea edx, [ebp - 0x5c]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x415ac0
sub edx, ecx
cmp dword [ebp - 0x98], 0x10
lea ecx, [ebp - 0xac]
cmovae ecx, dword [ebp - 0x424]
cmp edi, edx
jne 0x415bcd
lea edx, [ebp - 0x5c]
sub edi, 4
jb 0x415b01
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x415b06
add ecx, 4
add edx, 4
sub edi, 4
jae 0x415af0
cmp edi, 0xfffffffc
je 0x415b3a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x415b33
cmp edi, 0xfffffffd
je 0x415b3a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x415b33
cmp edi, 0xfffffffe
je 0x415b3a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x415b33
cmp edi, 0xffffffff
je 0x415b3a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x415b3a
sbb eax, eax
or eax, 1
jmp 0x415b3c
xor eax, eax
test eax, eax
jne 0x415bcd
mov ax, word [0x8cdc30]
movq xmm0, qword [0x8cdc28]
movq qword [ebp - 0x4c], xmm0
mov word [ebp - 0x44], ax
test ah, ah
je 0x415baa
xor edx, edx
mov dword [ebp - 0x418], edx
nop word [eax + eax]
mov eax, 0x8fb823ef
imul edx
add edx, dword [ebp - 0x418]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x418]
movsx eax, al
mov cl, dl
imul eax, eax, 0x39
sub cl, al
add cl, 0x36
xor byte [ebp + edx - 0x4c], cl
inc edx
mov dword [ebp - 0x418], edx
cmp edx, 0xa
jl 0x415b70
push ecx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x94]
call fcn.00419080
test eax, eax
js 0x415bcd
mov eax, dword [0x181e118]
mov dword [eax + 0x7b8], 1
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x80]
cmp edx, 0x10
jb 0x415c08
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415bfe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415d6e
push edx
push ecx
call fcn.00479074
add esp, 8
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
cmp eax, 0x10
jb 0x415c60
mov edx, dword [ebp - 0x424]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x415c56
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415d6e
push ecx
push edx
call fcn.00479074
add esp, 8
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 8
call fcn.0041b4d0
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x415c95
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x415c91
cmp esi, dword [eax + 8]
jne 0x415c91
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x415c81
mov esi, eax
jmp 0x415cac
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x415cac
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x415ca0
cmp esi, dword [ebp - 0x42c]
jne 0x4152c4
mov edi, dword [ebp - 0x420]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x420]
push dword [edi + 4]
call fcn.00419220
mov eax, dword [ebp - 0x420]
push 0x40
mov dword [eax + 4], edi
mov eax, dword [ebp - 0x420]
mov dword [eax], edi
mov eax, dword [ebp - 0x420]
mov dword [eax + 8], edi
push dword [ebp - 0x420]
mov dword [ebp - 0x41c], 0
call fcn.00479074
add esp, 8
lea ecx, [ebp - 0x250]
call fcn.004163a0
lea ecx, [ebp - 0x410]
call fcn.00415d80
mov edx, dword [ebp - 0xe0]
cmp edx, 0x10
jb 0x415d50
mov ecx, dword [ebp - 0xf4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x415d46
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415d6e
push edx
push ecx
call fcn.00479074
add esp, 8
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.00478e38
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.006bd179
call fcn.00403f10
int3