Function at 0x74795e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x208
mov esi, esp
mov dword [esi + 0x1f0], ebp
mov dword [esi + 0xb0], ecx
nop
mov dword [esi + 0x1f4], esp
mov dword [esi + 0x200], 0xffffffff
lea eax, [esi + 0x1f8]
mov dword [esi + 0x1fc], 0x74afc0
mov ecx, dword fs:[0]
mov dword [esi + 0x1f8], ecx
mov dword fs:[0], eax
call fcn.0074af80
mov edx, dword [0xa20acc]
mov ecx, dword [0xa20ab4]
mov ebx, 0x71be
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0xa0535c]
call ecx
mov dword [esi + 0x10], eax
mov eax, dword [0xa20ad0]
mov edi, dword [0xa20aa4]
mov dword [esi + 0x18], ebx
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xa0535c]
lea ebx, [esi + 0xf8]
mov ecx, ebx
call edi
mov dword [esi + 0x200], 0xd
push 0
mov dword [esi + 0x54], ebx
push ebx
call fcn.00772a20
add esp, 8
nop
mov dword [esi + 0x98], esp
push eax
sub esp, 0x1c
mov dword [esi + 4], esp
mov ecx, dword [esi + 0x10]
mov eax, ecx
xor eax, 0xcf5fedc9
mov dword [esi], eax
mov dword [esi + 0x74], eax
mov eax, ecx
xor eax, 0xcf5fedc3
mov dword [esi + 0x9c], eax
mov dword [esi + 0x70], eax
movzx eax, byte [0xa209e6]
mov byte [esi + 0x1c], cl
mov ch, cl
xor ch, 0x77
cmp al, ch
je 0x74645b
mov cl, byte [esi + 0x1c]
xor cl, 0xc3
mov dl, 1
mov eax, ecx
lock cmpxchg byte [0xa209e6], dl
je 0x7463f2
cmp al, ch
jne 0x7463e0
jmp 0x74645b
nop
mov ebx, dword [esi + 0x10]
mov eax, ebx
xor eax, 0x3afe0e0b
mov dword [esi + 0xc], eax
xor ebx, 0xcf5fedc0
cmp ebx, 2
mov eax, 1
cmovge eax, ebx
mov dword [esi + 8], eax
xor edi, edi
nop
mov cl, byte [esi + 0x1c]
nop word [eax + eax]
nop
mov eax, dword [esi + 0xc]
add eax, edi
xor edx, edx
div ebx
not edx
movzx eax, byte [edi + 0xa209e0]
xor al, byte [ebx + edx + 0x9a55d0]
xor al, cl
xor al, 0x27
mov byte [edi + 0xa209e0], al
inc edi
cmp dword [esi + 8], edi
jne 0x746420
nop
xchg byte [0xa209e6], ch
mov dword [esi + 0x200], 0xffffffff
nop
mov eax, dword [0xa20ad8]
mov ecx, dword [0xa20ab0]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x200], 0xffffffff
call dword [0xa0535c]
lea eax, [esi + 0x60]
mov edi, dword [esi + 0x9c]
push edi
push 0xa209e0
mov dword [esi + 0x58], eax
push eax
call ecx
add esp, 0xc
mov byte [esi + edi + 0x60], 0
mov dword [esi + 0x200], 9
call fcn.0085b040
mov ecx, eax
mov eax, dword [esi + 4]
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x10]
mov edx, eax
xor edx, 0xcf5fedd3
xor eax, 0xcf5fedcc
mov dword [esi + 0xc], eax
movzx eax, byte [esi + 0x1c]
xor al, 0xf6
mov byte [esi + 8], al
mov dword [esi + 0xa4], edx
lea ebx, [esi + edx]
add ebx, 0xe0
xor edx, edx
nop
mov edi, dword [esi + 0xc]
nop word cs:[eax + eax]
nop
mov dword [esi + 0x14], edx
mov eax, ecx
xor edx, edx
div edi
or dl, byte [esi + 8]
mov byte [ebx - 1], dl
mov edx, dword [esi + 0x14]
dec ebx
inc edx
cmp ecx, edi
mov ecx, eax
jae 0x7464f0
nop
mov dword [esi + 0x40], 0
mov eax, dword [esi]
mov dword [esi + 0x44], eax
mov byte [esi + 0x30], 0
cmp edx, eax
jbe 0x746547
nop
mov dword [esi + 0x200], 9
sub esp, 0xc
movzx eax, byte [esi + 0x5c]
mov byte [esp + 4], al
mov dword [esp + 8], ebx
mov dword [esp], edx
lea ecx, [esi + 0x30]
call fcn.0066cb40
jmp 0x74657d
nop
mov dword [esi + 0x40], edx
mov eax, dword [0xa20ac8]
mov ecx, dword [0xa20aac]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x200], 0xffffffff
mov edi, edx
call dword [0xa0535c]
lea eax, [esi + 0x30]
push edi
push ebx
push eax
call ecx
add esp, 0xc
mov byte [esi + edi + 0x30], 0
nop
mov edi, dword [esi + 0x40]
mov eax, dword [esi]
cmp dword [esi + 0x44], eax
jbe 0x74658d
mov edx, dword [esi + 0x30]
jmp 0x746590
lea edx, [esi + 0x30]
mov ebx, dword [esi + 0x70]
mov eax, dword [esi + 0x74]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x7465cc
nop
mov dword [esi + 0x200], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0xe0]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov dword [esp], edi
lea ecx, [esi + 0x60]
call fcn.0066d8c0
jmp 0x746622
nop
mov dword [esi + 0x14], edx
lea edx, [ebx + edi]
mov ecx, edx
mov dword [esi + 0xa8], edx
mov dword [esi + 0x70], edx
cmp eax, dword [esi]
jbe 0x7465e8
mov eax, dword [esi + 0x60]
mov dword [esi + 0x58], eax
mov eax, dword [0xa20ac8]
mov ecx, dword [0xa20aac]
sub ecx, dword [esi + 0x18]
add ecx, eax
add ebx, dword [esi + 0x58]
mov dword [esi + 0x200], 0xffffffff
call dword [0xa0535c]
push edi
push dword [esi + 0x14]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0x58]
mov byte [ecx + eax], 0
nop
mov eax, dword [esi + 0x44]
cmp eax, dword [esi]
jbe 0x746678
lea edi, [eax + 1]
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0xcf5fe239
cmp edi, ecx
mov ecx, dword [esi + 0x30]
jbe 0x74666d
nop
mov edx, dword [ecx - 4]
mov edi, ebx
xor edi, 0x30a0123a
add edi, ecx
sub edi, edx
mov ecx, ebx
xor ecx, 0xcf5fede6
cmp edi, ecx
jae 0x7478e9
mov ecx, ebx
xor ecx, 0xcf5fede2
add eax, ecx
mov edi, eax
mov ecx, edx
nop
push edi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x74]
mov edx, dword [0xa20c74]
xor edx, dword [esi + 0x10]
mov edi, dword [0x9a54b0]
mov ebx, edi
neg ebx
cmp edx, 0xefa9b6d3
lea edx, [edi + 0x9a54b0]
cmove edx, ebx
mov dword [esi + 0xa8], edx
mov edx, dword [0x9a55ac]
mov dword [esi + 0x58], edx
mov edx, 0x9a55c0
add edx, dword [0x9a55c0]
mov dword [esi + 0xb8], edx
cmp ecx, eax
jne 0x7466fc
nop
mov dword [esi + 0x200], 9
sub esp, 0x10
movzx eax, byte [esi + 0x30]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x9a5496
mov dword [esp], 1
lea ecx, [esi + 0x60]
call fcn.0066d8c0
jmp 0x746727
lea edx, [eax + 1]
mov dword [esi + 0x70], edx
cmp ecx, dword [esi]
jbe 0x74670b
mov ecx, dword [esi + 0x60]
jmp 0x74670e
lea ecx, [esi + 0x60]
movzx edx, byte [esi + 0x1c]
xor dl, 0xeb
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], 0
mov dword [esi + 0x200], 9
call fcn.0085b020
mov ecx, eax
mov eax, dword [esi + 0xa4]
lea edi, [esi + eax]
add edi, 0xe0
xor edx, edx
nop
nop
mov dword [esi + 0x14], edx
mov dword [0xa20c74], 0xbcf2d0d1
mov eax, ecx
xor edx, edx
div dword [esi + 0xc]
movzx ebx, byte [esi + 0x1c]
xor bl, dl
xor bl, 9
and bl, dl
xor dl, byte [esi + 8]
or dl, bl
mov byte [edi - 1], dl
mov edx, dword [esi + 0x14]
dec edi
inc edx
cmp ecx, dword [esi + 0xc]
mov ecx, eax
jae 0x746740
nop
mov dword [esi + 0x40], 0
mov eax, dword [esi]
mov dword [esi + 0x44], eax
mov byte [esi + 0x30], 0
cmp edx, eax
jbe 0x7467b0
nop
mov dword [esi + 0x200], 9
sub esp, 0xc
movzx eax, byte [esi + 0x5c]
mov byte [esp + 4], al
mov dword [esp + 8], edi
mov dword [esp], edx
lea ecx, [esi + 0x30]
call fcn.0066cb40
jmp 0x7467f0
nop
mov dword [esi + 0x40], edx
mov eax, dword [0xa20ac8]
mov ecx, dword [0xa20aac]
mov dword [0xa20c94], 0xcf5fedc6
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x200], 0xffffffff
mov ebx, edx
call dword [0xa0535c]
lea eax, [esi + 0x30]
push ebx
push edi
push eax
call ecx
add esp, 0xc
mov byte [esi + ebx + 0x30], 0
nop
mov edi, dword [esi + 0x40]
mov eax, dword [esi]
cmp dword [esi + 0x44], eax
jbe 0x746800
mov edx, dword [esi + 0x30]
jmp 0x746803
lea edx, [esi + 0x30]
mov ebx, dword [esi + 0x70]
mov eax, dword [esi + 0x74]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x74683f
nop
mov dword [esi + 0x200], 0xb
sub esp, 0x10
movzx eax, byte [esi + 0xe0]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov dword [esp], edi
lea ecx, [esi + 0x60]
call fcn.0066d8c0
jmp 0x746890
lea ecx, [ebx + edi]
mov dword [esi + 0x70], ecx
cmp eax, dword [esi]
mov dword [esi + 0xc], edx
mov dword [esi + 8], ecx
jbe 0x746854
mov edx, dword [esi + 0x60]
jmp 0x746857
lea edx, [esi + 0x60]
mov dword [esi + 0x14], edx
mov eax, dword [0xa20ac8]
mov ecx, dword [0xa20aac]
sub ecx, dword [esi + 0x18]
add ecx, eax
add ebx, edx
mov dword [esi + 0x200], 0xffffffff
call dword [0xa0535c]
push edi
push dword [esi + 0xc]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax], 0
nop
mov eax, dword [esi + 0x44]
cmp eax, dword [esi]
jbe 0x7468e6
lea edi, [eax + 1]
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0xcf5fe239
cmp edi, ecx
mov ecx, dword [esi + 0x30]
jbe 0x7468db
nop
mov edx, dword [ecx - 4]
mov edi, ebx
xor edi, 0x30a0123a
add edi, ecx
sub edi, edx
mov ecx, ebx
xor ecx, 0xcf5fede6
cmp edi, ecx
jae 0x7478f9
mov ecx, ebx
xor ecx, 0xcf5fede2
add eax, ecx
mov edi, eax
mov ecx, edx
nop
push edi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x74]
cmp ecx, eax
jne 0x746928
nop
mov dword [esi + 0x200], 9
sub esp, 0x10
movzx eax, byte [esi + 0x30]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x9a5496
mov dword [esp], 1
lea ecx, [esi + 0x60]
call fcn.0066d8c0
jmp 0x746953
lea edx, [eax + 1]
mov dword [esi + 0x70], edx
cmp ecx, dword [esi]
jbe 0x746937
mov ecx, dword [esi + 0x60]
jmp 0x74693a
lea ecx, [esi + 0x60]
movzx edx, byte [esi + 0x1c]
xor dl, 0xeb
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], 0
mov dword [esi + 0x200], 2
nop
mov dword [esi + 0x200], 2
call fcn.008ef697
mov ecx, edx
mov edx, dword [esi + 0x10]
lea edi, [edx*4]
xor edi, 0x3d7fb718
xor edx, 0xcf5feda2
imul edi, eax
imul ecx, edx
mul edx
add ecx, edx
add ecx, edi
mov dword [esi + 0x200], 9
lea edx, [esi + 0x30]
push ecx
push eax
mov dword [esi + 0xc], edx
push edx
call fcn.00749570
add esp, 0xc
nop
mov edx, dword [esi + 0x40]
mov eax, dword [esi]
cmp dword [esi + 0x44], eax
jbe 0x7469b3
mov eax, dword [esi + 0x30]
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0x70]
mov eax, dword [esi + 0x74]
mov ecx, eax
sub ecx, ebx
cmp ecx, edx
jae 0x7469f5
nop
mov dword [esi + 0x200], 0xa
sub esp, 0x10
movzx eax, byte [esi + 0xe0]
mov byte [esp + 4], al
mov dword [esp + 0xc], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 8], eax
mov dword [esp], edx
lea ecx, [esi + 0x60]
call fcn.0066d8c0
nop
mov ecx, dword [esi]
jmp 0x746a4d
lea ecx, [ebx + edx]
mov dword [esi + 8], ecx
mov dword [esi + 0x70], ecx
cmp byte [0xa56fc1], 0
mov ecx, dword [esi + 0x60]
lea edi, [esi + 0x60]
cmovne edi, ecx
cmp eax, dword [esi]
cmova edi, ecx
mov eax, dword [0xa20ac8]
mov ecx, dword [0xa20aac]
sub ecx, dword [esi + 0x18]
add ecx, eax
add ebx, edi
mov dword [esi + 0x200], 0xffffffff
mov dword [esi + 0x14], edx
call dword [0xa0535c]
push dword [esi + 0x14]
push dword [esi + 0xc]
push ebx
call ecx
mov ecx, dword [esi]
add esp, 0xc
mov eax, dword [esi + 8]
mov byte [edi + eax], 0
nop
mov eax, dword [esi + 0x44]
cmp eax, ecx
jbe 0x746aaf
lea edi, [eax + 1]
mov ecx, dword [esi + 0x10]
xor ecx, 0xcf5fe239
cmp edi, ecx
mov ecx, dword [esi + 0x30]
jbe 0x746aa4
nop
mov edx, dword [ecx - 4]
cmp byte [0xa570bc], 0
jne 0x746a95
nop
mov ebx, dword [esi + 0x10]
mov edi, ebx
xor edi, 0x30a0123a
add edi, ecx
sub edi, edx
mov ecx, ebx
xor ecx, 0xcf5fede6
cmp edi, ecx
jae 0x747909
mov ecx, dword [esi + 0x10]
xor ecx, 0xcf5fede2
add eax, ecx
mov edi, eax
mov ecx, edx
nop
push edi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x70]
mov edx, dword [esi + 0x74]
mov ecx, edx
sub ecx, eax
mov edi, dword [esi + 0x10]
xor edi, 0xcf5fedc2
cmp ecx, edi
nop
mov dword [esi + 0x14], edi
jae 0x746b16
nop
movzx eax, byte [0xa209f5]
movzx ecx, byte [esi + 0x1c]
xor cl, 0x89
mov byte [esi + 0xc], cl
cmp al, cl
je 0x746b9c
movzx eax, byte [esi + 0x1c]
mov ecx, eax
xor cl, 0xeb
xor al, 0xc9
mov edx, eax
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa209f5], dl
je 0x746b3d
cmp al, byte [esi + 0xc]
jne 0x746b00
jmp 0x746b9c
lea ecx, [eax + edi]
mov dword [esi + 0x70], ecx
cmp edx, dword [esi]
jbe 0x746b25
mov edx, dword [esi + 0x60]
jmp 0x746b28
lea edx, [esi + 0x60]
mov edi, dword [esi + 0x10]
xor edi, 0xaa2788e8
mov dword [edx + eax], edi
mov byte [edx + ecx], 0
jmp 0x746bcc
nop
mov eax, dword [esi + 0x10]
xor eax, 0x8b56a532
mov dword [esi + 8], eax
mov edi, dword [esi + 0x9c]
cmp edi, 2
mov ebx, 1
cmovge ebx, edi
xor ecx, ecx
nop dword [eax]
nop
mov eax, dword [esi + 8]
add eax, ecx
xor edx, edx
div edi
not edx
movzx eax, byte [ecx + 0xa209f0]
xor al, byte [edi + edx + 0x9a55e0]
xor al, 1
mov byte [ecx + 0xa209f0], al
inc ecx
cmp ebx, ecx
jne 0x746b60
nop
movzx eax, byte [esi + 0xc]
xchg byte [0xa209f5], al
mov dword [esi + 0x200], 9
nop
mov dword [esi + 0x200], 9
sub esp, 0x10
movzx eax, byte [esi + 0x30]
mov byte [esp + 4], al
mov eax, dword [esi + 0x14]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0xa209f0
lea ecx, [esi + 0x60]
call fcn.0066d8c0
nop
mov eax, dword [esi + 0x2c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov eax, dword [esi + 0x108]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
xor eax, 0xcf5fedc1
mov dword [esi + 0x50], eax
cmp dword [esi + 0x10c], eax
jbe 0x746c03
mov eax, dword [esi + 0xf8]
mov dword [esi + 0x54], eax
mov ebx, dword [esi + 4]
add ebx, 4
mov edi, dword [esi + 0x10]
mov eax, edi
xor eax, 0xcf5fedce
cmp dword [esi + 0xc], eax
nop
mov dword [esi + 4], ebx
jae 0x746c57
nop
mov eax, dword [0xa20ad8]
mov ecx, dword [0xa20ab0]
sub ecx, dword [esi + 0x18]
add ecx, eax
xor edi, 0xcf5fedd6
mov dword [esi + 0x200], 0xffffffff
call dword [0xa0535c]
push edi
push dword [esi + 0x54]
push ebx
call ecx
add esp, 0xc
mov eax, 7
jmp 0x746d2a
nop
mov ecx, dword [esi + 0xc]
or ecx, dword [esi + 0x50]
cmp ecx, 0x7ffffffe
mov edx, 0x7ffffffe
cmovb edx, ecx
mov eax, edi
xor eax, 0xcf5fea38
cmp ecx, eax
mov dword [esi + 8], edx
lea eax, [edx + edx]
jbe 0x746cd4
mov edx, edi
xor edx, 0xb0a01228
cmp ecx, edx
mov dword [esi + 0x200], 0x11
jae 0x747919
mov ecx, edi
xor ecx, 0xcf5fede3
mov edx, eax
xor edx, ecx
and ecx, eax
add ecx, ecx
mov eax, ecx
xor eax, edx
and ecx, edx
lea eax, [eax + ecx*2]
push eax
call fcn.008ea17d
add esp, 4
nop
mov edi, dword [esi + 0x10]
mov ecx, edi
xor ecx, 0xcf5fede5
add ecx, eax
xor edi, 0x30a01226
and edi, ecx
mov dword [edi - 4], eax
jmp 0x746cec
add eax, 2
mov dword [esi + 0x200], 0x11
push eax
call fcn.008ea17d
add esp, 4
mov edi, eax
nop
mov eax, dword [esi + 4]
mov dword [eax], edi
mov eax, dword [0xa20ad8]
mov ecx, dword [0xa20ab0]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov eax, dword [esi + 0xc]
lea ebx, [eax*2 + 2]
mov dword [esi + 0x200], 0xffffffff
call dword [0xa0535c]
push ebx
push dword [esi + 0x54]
push edi
call ecx
add esp, 0xc
nop
mov eax, dword [esi + 8]
nop
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0xc]
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x18], eax
lea eax, [esi + 0xe0]
mov dword [ecx], eax
lea eax, [esi + 0x60]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esi]
cmp dword [esi + 0x74], ecx
jbe 0x746d4f
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x70]
add ecx, eax
mov dword [esi + 0x40], 0
mov edx, dword [esi + 0x50]
mov dword [esi + 0x44], edx
mov word [esi + 0x30], 0
mov dword [esi + 0x200], 0x12
lea edx, [esi + 0x30]
push 0
push edx
push ecx
push eax
call fcn.00776c60
add esp, 0x10
nop
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x50]
cmp dword [esi + 0x44], ecx
lea ecx, [esi + 0x30]
jbe 0x746d93
mov ecx, dword [esi + 0x30]
lea eax, [ecx + eax*2]
push eax
push ecx
push dword [esi + 4]
call fcn.007780a0
add esp, 0xc
nop
mov ecx, dword [esi + 0x50]
nop
mov eax, dword [esi + 0x44]
cmp eax, ecx
jbe 0x746e01
lea ecx, [eax*2 + 2]
mov ebx, dword [esi + 0x10]
mov edx, ebx
xor edx, 0xcf5fe239
cmp ecx, edx
mov edi, dword [esi + 0x30]
jbe 0x746df6
nop
mov edx, dword [edi - 4]
mov ecx, ebx
xor ecx, 0x30a0123a
add ecx, edi
sub ecx, edx
mov edi, ebx
xor edi, 0xcf5fede6
cmp ecx, edi
jae 0x74791e
add eax, eax
mov ecx, ebx
xor ecx, 0xcf5fede3
add ecx, eax
mov edi, edx
nop
push ecx
push edi
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [0xa20ad8]
mov ecx, dword [0xa20ab0]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov ebx, dword [esi + 0x10]
mov edi, ebx
xor edi, 0xcf5fedde
mov dword [esi + 0x200], 0xffffffff
call dword [0xa0535c]
push edi
push dword [esi + 4]
lea eax, [esi + 0xe0]
push eax
call ecx
add esp, 0xc
mov ecx, dword [esi + 0x2c]
mov dword [ecx + 0x14], 0
mov eax, dword [esi + 0x50]
mov dword [ecx + 0x18], eax
mov word [ecx + 4], 0
mov esp, dword [esi + 0x98]
mov eax, dword [0xa20c78]
xor eax, ebx
cmp eax, 0x23af912d
mov eax, dword [0xa5713c]
jne 0x746e8b
nop
mov dword [0xa20c88], 0xb1995bfc
imul eax, eax
add eax, eax
mov ecx, 1
sub ecx, eax
mov dword [0xa5713c], ecx
jmp 0x746ecf
lea ecx, [eax + 1]
mov dword [0xa5713c], ecx
test ecx, eax
je 0x746ecf
mov dword [esi + 0xac], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x90], 0
jmp 0x7476fc
nop
mov eax, dword [esi + 0xb8]
mov edx, dword [eax]
mov cl, 1
mov dword [esi + 0xac], ecx
cmp dword [esi + 0x58], 0
jle 0x7476d4
add edx, eax
mov dword [esi], edx
mov eax, dword [0xa20c7c]
mov edx, dword [esi + 0x10]
xor eax, edx
mov dword [esi + 0x9c], eax
mov eax, dword [0xa20c88]
xor eax, edx
mov dword [esi + 0xa4], eax
mov eax, edx
xor eax, 0xf70ab437
mov ecx, edx
xor ecx, 0xd97735f4
mov edi, edx
shr edi, 4
mov ebx, edx
shl ebx, 0x1c
xor ebx, edx
xor ebx, 0x4688ca0b
xor edi, 0xcb5f58d2
add ebx, ecx
adc edi, eax
add ebx, 1
mov dword [esi + 0xd8], ebx
adc edi, 0
mov dword [esi + 0xdc], edi
mov edi, dword [esi]
mov eax, edx
xor eax, 0x30a01229
mov ecx, dword [esi + 0x14]
add eax, ecx
inc eax
mov dword [esi + 0xc0], eax
mov eax, edx
shr eax, 5
mov dword [esi + 0xd4], eax
mov eax, edx
shl eax, 0x1b
xor eax, edx
mov dword [esi + 0xd0], eax
mov eax, edx
xor eax, 0xcf5fedc6
mov dword [esi + 0xcc], eax
mov eax, edx
xor eax, 0xcf5fedd6
mov dword [esi + 0x98], eax
mov eax, dword [0xa20c84]
xor eax, edx
mov dword [esi + 0xc8], eax
mov eax, edx
xor eax, 0x3c7f640
mov dword [esi + 0xbc], eax
xor edx, 0xb685db6b
mov dword [esi + 0xb4], edx
xorps xmm0, xmm0
pcmpeqd xmm1, xmm1
xor ecx, ecx
mov dword [esi + 0x90], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x84], 0
mov dword [esi + 4], 0
mov dword [esi + 0x54], 0
jmp 0x747030
mov eax, dword [esi + 0x1c]
xor dword [esi + 0x90], eax
xor dword [esi + 0x8c], edx
xor dword [esi + 0x88], ebx
mov eax, dword [esi + 0x14]
xor dword [esi + 0x84], eax
mov ecx, dword [esi + 0xc]
add ecx, dword [esi + 0x98]
cmp ecx, dword [esi + 0x58]
jge 0x7476fc
mov eax, dword [esi + 0xa8]
mov dword [esi + 0xc], ecx
lea ebx, [eax + ecx]
cmp dword [esi + 0x9c], 0xc5e1df29
jne 0x7470a0
mov ecx, edi
sub ecx, ebx
mov edx, dword [esi + 4]
sbb edx, 0
cmp ecx, dword [esi + 0x98]
mov eax, edx
sbb eax, dword [esi + 0xcc]
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 4]
mov dword [esi + 8], eax
jl 0x747131
mov ebx, dword [esi + 0x2c]
mov edx, dword [esi + 8]
cmp dword [esi + 0xa4], 0x6b9a5a83
jne 0x747000
jmp 0x7476c2
nop
mov edx, dword [esi + 4]
mov ecx, ebx
shld edx, edi, cl
mov eax, edi
mov edi, edx
mov edx, eax
shl edx, cl
test bl, 0x20
cmovne edi, edx
mov dword [esi + 8], edi
mov ecx, 0
cmovne edx, ecx
mov dword [esi], eax
mov edi, dword [esi + 4]
mov ecx, edx
mov eax, dword [esi]
shld edi, eax, cl
mov eax, dword [esi]
shl eax, cl
test dl, 0x20
cmovne edi, eax
mov ecx, 0
cmovne eax, ecx
mov ecx, dword [esi + 0xd8]
sub ecx, edx
mov edx, dword [esi + 0xdc]
sbb edx, dword [esi + 8]
add ecx, eax
adc edx, edi
mov eax, dword [esi + 0xd4]
xor eax, edx
mov edi, dword [esi + 0xd0]
xor edi, ecx
xor eax, 0x67aff6e
xor edi, 0xff5fedd6
or edi, eax
mov edi, dword [esi]
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 4]
mov dword [esi + 8], eax
jne 0x74707d
cmp dword [esi + 0xc8], 0x9f4fb046
jne 0x747630
mov eax, edx
sar eax, 0x1f
mov dword [esi + 4], eax
movups xmmword [esi + 0x1b0], xmm0
mov dword [esi + 0x1c4], edx
mov dword [esi + 0x1c0], ecx
mov dword [esi + 0x1cc], eax
mov dword [esi + 0x1c8], eax
lea ebx, [ecx + ecx*2]
add bl, 0xf7
mov eax, ebx
mov byte [esi], bl
shr bl, 3
and bl, 0xf
neg bl
movsx edi, bl
mov ebx, dword [esi + edi + 0x1c0]
mov dword [esi + 0x1a4], edx
mov dword [esi + 0x1a0], ecx
movzx ecx, byte [esi]
and cl, 7
shl ebx, cl
mov eax, dword [esi + 4]
mov dword [esi + 0x1ac], eax
mov dword [esi + 0x1a8], eax
movups xmmword [esi + 0x190], xmm0
mov eax, ebx
and al, 7
shr bl, 3
and bl, 0xf
neg bl
movsx edi, bl
mov ebx, dword [esi + edi + 0x1a8]
mov edx, dword [esi + edi + 0x1ac]
mov ecx, eax
shld edx, ebx, cl
mov dword [esi + 0x28], edx
shl ebx, cl
mov dword [esi], ebx
not cl
mov ebx, dword [esi + edi + 0x1a0]
mov edx, dword [esi + edi + 0x1a4]
mov edi, edx
shr edi, 1
shr edi, cl
mov ecx, eax
shld edx, ebx, cl
mov dword [esi + 0x20], edx
or edi, dword [esi]
mov dword [esi + 0x78], edi
shl ebx, cl
mov dword [esi + 0x94], ebx
mov eax, 1
sub eax, ebx
mov dword [esi + 4], eax
mov ebx, 0
sbb ebx, edx
mov dword [esi + 0xc4], ebx
mov edi, 0
sbb edi, dword [esi + 0x78]
mov ecx, 0
sbb ecx, dword [esi + 0x28]
mov dword [esi + 0x80], ecx
mov ecx, dword [esi + 0x94]
mul ecx
mov dword [esi], edx
mov dword [esi + 0x24], eax
mov eax, ebx
mul ecx
mov ecx, edx
mov ebx, eax
add ebx, dword [esi]
adc ecx, 0
mov eax, dword [esi + 4]
mul dword [esi + 0x20]
add eax, ebx
mov dword [esi], eax
adc ecx, edx
setb byte [esi + 0x4c]
mov ebx, dword [esi + 0xc4]
mov eax, ebx
mul dword [esi + 0x20]
add eax, ecx
mov dword [esi + 0x7c], eax
movzx eax, byte [esi + 0x4c]
adc edx, eax
mov dword [esi + 0x4c], edx
mov ecx, dword [esi + 0x94]
mov eax, ecx
mul edi
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0x80]
imul eax, ecx
imul edi, dword [esi + 0x20]
add edi, edx
add edi, eax
mov eax, dword [esi + 0x78]
imul ebx, eax
mov ecx, dword [esi + 4]
mul ecx
imul ecx, dword [esi + 0x28]
add ecx, edx
add ecx, ebx
add eax, dword [esi + 0xa0]
adc ecx, edi
add eax, dword [esi + 0x7c]
mov dword [esi + 0x28], eax
adc ecx, dword [esi + 0x4c]
mov edx, ecx
mov dword [esi + 4], ecx
mov ebx, 1
mov edi, dword [esi + 0x24]
sub ebx, edi
mov eax, 0
sbb eax, dword [esi]
mov dword [esi + 0x20], eax
mov ecx, 0
sbb ecx, dword [esi + 0x28]
mov eax, 0
sbb eax, edx
mov dword [esi + 0x94], eax
mov eax, ebx
mul edi
mov dword [esi + 0x80], edx
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x20]
mul edi
mov edi, eax
add edi, dword [esi + 0x80]
adc edx, 0
mov dword [esi + 0x7c], edx
mov eax, ebx
mul dword [esi]
add eax, edi
mov dword [esi + 0x80], eax
adc edx, dword [esi + 0x7c]
mov edi, edx
setb byte [esi + 0x4c]
mov eax, dword [esi + 0x20]
mul dword [esi]
add eax, edi
mov dword [esi + 0x7c], eax
movzx eax, byte [esi + 0x4c]
adc edx, eax
mov dword [esi + 0x4c], edx
mov edi, dword [esi + 0x28]
mov eax, edi
mul ebx
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0x20]
imul eax, edi
add edx, eax
mov dword [esi + 0x20], edx
mov edi, dword [esi + 0x24]
mov eax, edi
mul ecx
imul ebx, dword [esi + 4]
add ebx, dword [esi + 0x20]
imul ecx, dword [esi]
add ecx, edx
mov edx, edi
mov edi, dword [esi + 0x94]
imul edi, edx
add ecx, edi
add eax, dword [esi + 0xa0]
adc ecx, ebx
add eax, dword [esi + 0x7c]
adc ecx, dword [esi + 0x4c]
mov edi, dword [esi + 0x78]
mov dword [esi + 0x180], edi
mov edi, dword [esi + 0x80]
mov dword [esi + 0x184], edi
mov dword [esi + 0x188], eax
mov dword [esi + 0x18c], ecx
movups xmmword [esi + 0x170], xmm0
mov eax, edx
mov ch, al
and ch, 7
shr al, 3
and al, 0xf
neg al
movsx edi, al
mov eax, dword [esi + edi + 0x188]
mov dword [esi + 0x28], eax
mov cl, ch
shl eax, cl
mov dword [esi + 0x24], eax
not cl
mov byte [esi + 0x20], cl
mov ebx, dword [esi + edi + 0x184]
mov dword [esi + 4], ebx
shr ebx, 1
shr ebx, cl
mov eax, dword [esi + edi + 0x18c]
mov dword [esi], eax
mov cl, ch
mov eax, dword [esi + 0x28]
shld dword [esi], eax, cl
mov edx, dword [esi + edi + 0x180]
mov eax, edx
shl eax, cl
shld dword [esi + 4], edx, cl
or ebx, dword [esi + 0x24]
mov edx, dword [esi]
mov dword [esi + 0x16c], edx
mov edx, dword [esi + 4]
mov dword [esi + 0x164], edx
mov dword [esi + 0x160], eax
mov dword [esi + 0x168], ebx
movups xmmword [esi + 0x150], xmm0
mov ebx, dword [esi + edi + 0x168]
mov dword [esi], ebx
shl ebx, cl
mov dword [esi + 0x24], ebx
mov eax, dword [esi + edi + 0x164]
mov dword [esi + 4], eax
shr eax, 1
mov cl, byte [esi + 0x20]
shr eax, cl
mov edx, dword [esi + edi + 0x16c]
mov cl, ch
mov ebx, dword [esi]
shld edx, ebx, cl
mov dword [esi + 0x28], edx
or eax, dword [esi + 0x24]
mov edi, dword [esi + edi + 0x160]
mov ebx, dword [esi + 4]
shld ebx, edi, cl
shl edi, cl
mov ecx, 3
mul ecx
mov dword [esi], edx
mov dword [esi + 0x24], eax
mov eax, edi
mul ecx
mov edi, edx
mov dword [esi + 4], eax
mov eax, ebx
mul ecx
add eax, edi
mov edi, eax
mov dword [esi + 0x20], eax
adc edx, dword [esi + 0x24]
mov dword [esi + 0x24], edx
mov eax, dword [esi + 0x28]
lea eax, [eax + eax*2]
mov ecx, dword [esi]
adc ecx, eax
mov dword [esi], ecx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x140], eax
mov ebx, dword [esi + 4]
add ebx, 0xfffffffa
adc edi, 0xffffffff
mov dword [esi + 0x28], edi
mov eax, dword [esi + 8]
mov dword [esi + 0x144], eax
adc edx, 0xffffffff
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x148], eax
adc ecx, 0xffffffff
mov dword [esi + 8], ecx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x14c], eax
movups xmmword [esi + 0x130], xmm0
mov dword [esi + 0x78], ebx
mov ch, bl
and ch, 7
mov eax, ebx
shr al, 3
and al, 0xf
neg al
movsx eax, al
mov ebx, dword [esi + eax + 0x148]
mov edx, dword [esi + eax + 0x14c]
mov cl, ch
shld edx, ebx, cl
mov dword [esi + 0x14], edx
shl ebx, cl
not cl
mov edx, dword [esi + eax + 0x140]
mov edi, dword [esi + eax + 0x144]
mov eax, edi
shr eax, 1
shr eax, cl
mov cl, ch
shld edi, edx, cl
or eax, ebx
shl edx, cl
mov ecx, dword [esi + 0x78]
sub ecx, edx
mov ebx, dword [esi + 0x28]
sbb ebx, edi
sbb dword [esi + 0x1c], eax
mov eax, dword [esi + 8]
sbb eax, dword [esi + 0x14]
mov dword [esi + 8], eax
mov edx, dword [esi + 4]
sub edx, ecx
mov eax, ecx
mov dword [esi + 0x120], ecx
mov ecx, dword [esi + 0x20]
mov eax, ebx
sbb ecx, ebx
mov dword [esi + 0x124], ebx
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 0x1c]
sbb edi, ebx
mov eax, dword [esi]
sbb eax, dword [esi + 8]
mov dword [esi + 0x128], ebx
add edx, 0xfffffffa
mov dword [esi + 4], edx
adc ecx, 0xffffffff
mov dword [esi + 0x20], ecx
adc edi, 0xffffffff
mov dword [esi + 0x24], edi
adc eax, 0xffffffff
mov dword [esi], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x12c], eax
movups xmmword [esi + 0x110], xmm0
mov ch, dl
and ch, 7
mov eax, edx
shr al, 3
and al, 0xf
neg al
movsx edx, al
mov eax, dword [esi + edx + 0x128]
mov edi, eax
mov cl, ch
shl edi, cl
not cl
mov ebx, dword [esi + edx + 0x124]
mov dword [esi + 8], ebx
shr ebx, 1
shr ebx, cl
or ebx, edi
and ebx, dword [esi + 0x24]
mov edi, dword [esi + edx + 0x12c]
mov cl, ch
shld edi, eax, cl
and edi, dword [esi]
mov dword [esi + 0x14], edi
mov eax, dword [esi + edx + 0x120]
mov edx, eax
shl edx, cl
mov edi, dword [esi + 8]
shld edi, eax, cl
and edi, dword [esi + 0x20]
mov dword [esi + 8], edi
and edx, dword [esi + 4]
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0xbc]
mov edi, dword [esi + 0x54]
lea ecx, [edi + eax]
not ecx
add ecx, eax
mov eax, ecx
sub eax, edi
imul eax, ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0xb4]
sub ecx, edx
imul ecx, edx
mov edx, dword [esi + 0xc]
shl edx, cl
add edi, eax
mov eax, edx
sub eax, dword [esi + 0xc]
add eax, edx
mov edx, dword [esi + 8]
lea ecx, [eax + eax]
not ecx
imul ecx, eax
sub ecx, dword [esi + 0xb4]
mov dword [esi + 0xc], ecx
jmp 0x747698
lea eax, [ecx*8]
movdqu xmmword [esi + 0x1e0], xmm1
movups xmmword [esi + 0x1d0], xmm0
shr al, 3
and al, 0xf
neg al
movsx eax, al
mov edx, dword [esi + eax + 0x1ec]
not edx
and dword [esi + 0x14], edx
mov edx, dword [esi + eax + 0x1e8]
not edx
mov ebx, dword [esi + 0x2c]
and ebx, edx
mov edx, dword [esi + eax + 0x1e4]
not edx
mov edi, dword [esi + 8]
and edi, edx
mov edx, edi
mov eax, dword [esi + eax + 0x1e0]
not eax
and dword [esi + 0x1c], eax
mov eax, dword [esi + 0xc]
add eax, dword [esi + 0xc0]
add eax, ecx
mov dword [esi + 0xc], eax
mov edi, dword [esi + 0x54]
inc edi
nop
mov eax, dword [esi + 0xb8]
lea ecx, [eax + edi*4]
mov dword [esi + 0x54], edi
add ecx, dword [eax + edi*4]
mov edi, ecx
mov dword [esi + 4], 0
nop
cmp dword [esi + 0xa4], 0x6b9a5a83
jne 0x747000
mov ecx, dword [esi + 0xc]
add ecx, ecx
neg ecx
cmp ecx, dword [esi + 0x58]
jbe 0x747030
jmp 0x7476fc
mov dword [esi + 0x90], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x84], 0
nop
mov eax, dword [0xa20c80]
xor eax, dword [esi + 0x10]
mov ecx, 0xf
cmp eax, 0x5daaa23
jne 0x747721
nop
mov dword [0xa20c78], 0x239b4ebe
mov ecx, 0x16
nop
mov eax, dword [esi + 0x74]
cmp eax, ecx
jbe 0x74779b
lea edx, [eax + 1]
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0xcf5fe239
cmp edx, ecx
mov ecx, dword [esi + 0x60]
jbe 0x747786
mov edx, ebx
xor edx, 0x30a0123a
mov edi, edx
xor edi, ecx
and edx, ecx
lea edi, [edi + edx*2]
mov edx, ebx
xor edx, 0x7b4c7749
mov ebx, edi
xor ebx, edx
and edi, edx
lea edi, [ebx + edi*2]
mov ebx, dword [esi + 0x10]
mov ecx, dword [ecx - 4]
add edx, ecx
sub edi, edx
mov edx, ebx
xor edx, 0xcf5fede6
cmp edi, edx
jae 0x74792e
mov edx, ebx
xor edx, 0xcf5fede2
add eax, edx
mov edx, eax
nop
push edx
push ecx
call fcn.008ea1ad
add esp, 8
mov dword [esi + 0x200], 0x10
nop
mov dword [esi + 0x200], 0x10
lea ecx, [esi + 0xe0]
push dword [esi + 0xb0]
call fcn.00748ff0
nop
mov eax, dword [esi + 0xf4]
cmp eax, dword [esi + 0x50]
jbe 0x747818
lea ecx, [eax*2 + 2]
mov ebx, dword [esi + 0x10]
mov edx, ebx
xor edx, 0xcf5fe239
cmp ecx, edx
mov edi, dword [esi + 0xe0]
jbe 0x74780d
nop
mov edx, dword [edi - 4]
mov ecx, ebx
xor ecx, 0x30a0123a
add ecx, edi
sub ecx, edx
mov edi, ebx
xor edi, 0xcf5fede6
cmp ecx, edi
jae 0x74793e
add eax, eax
mov ecx, ebx
xor ecx, 0xcf5fede3
add ecx, eax
mov edi, edx
nop
push ecx
push edi
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x10c]
cmp eax, dword [esi + 0x50]
jbe 0x7478ce
nop
mov ecx, dword [esi + 0x90]
xor ecx, dword [0x9a54a0]
mov edi, dword [esi + 0x88]
xor edi, dword [0x9a54a8]
mov edx, dword [esi + 0x8c]
xor edx, dword [0x9a54a4]
mov ebx, dword [esi + 0x84]
xor ebx, dword [0x9a54ac]
or ebx, edx
or edi, ecx
or ebx, edi
setne cl
mov edx, dword [esi + 0xac]
and dl, cl
or dl, byte [0xa570bc]
and dl, 1
mov byte [0xa570bc], dl
lea edi, [eax*2 + 2]
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0xcf5fe239
cmp edi, ecx
mov edx, dword [esi + 0xf8]
jbe 0x7478c3
nop
mov ecx, dword [edx - 4]
mov edi, ebx
xor edi, 0x30a0123a
add edi, edx
sub edi, ecx
mov edx, ebx
xor edx, 0xcf5fede6
cmp edi, edx
jae 0x74794e
add eax, eax
xor ebx, 0xcf5fede3
add ebx, eax
mov edi, ebx
mov edx, ecx
nop
push edi
push edx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x1f8]
mov dword fs:[0], eax
mov eax, dword [esi + 0xb0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov dword [esi + 0x200], 0
call fcn.008cd651
nop
mov dword [esi + 0x200], 1
call fcn.008cd651
nop
mov dword [esi + 0x200], 3
call fcn.008cd651
call fcn.00667720
nop
mov dword [esi + 0x200], 4
call fcn.008cd651
nop
mov dword [esi + 0x200], 5
call fcn.008cd651
nop
mov dword [esi + 0x200], 6
call fcn.008cd651
nop
mov dword [esi + 0x200], 7
call fcn.008cd651
lea esi, [ebp - 0x204]
mov ebp, dword [esi + 0x1f0]
jmp 0x746394