Function at 0x7557a4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov esi, esp
mov dword [esi + 0x158], ebp
mov dword [esi + 0xe4], ecx
nop
mov dword [esi + 0x15c], esp
mov dword [esi + 0x168], 0xffffffff
lea eax, [esi + 0x160]
mov dword [esi + 0x164], 0x7594f0
mov ecx, dword fs:[0]
mov dword [esi + 0x160], ecx
mov dword fs:[0], eax
call fcn.007594a0
mov edx, dword [0xa53b48]
mov ecx, dword [0xa53b10]
mov ebx, 0x2919
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0xa37360]
call ecx
mov dword [esi + 0xc], eax
mov eax, dword [0xa53b3c]
mov edi, dword [0xa53b24]
mov dword [esi + 0x18], ebx
sub edi, ebx
add edi, eax
mov ecx, edi
call dword [0xa37360]
lea ebx, [esi + 0x140]
mov ecx, ebx
call edi
mov dword [esi + 0x168], 0xd
push 0
mov dword [esi + 0x1c], ebx
push ebx
call fcn.00781ed0
add esp, 8
nop
mov dword [esi + 0xe0], esp
push eax
sub esp, 0x1c
mov dword [esi + 0x4c], esp
mov dword [esi + 0x15c], esp
mov ebx, dword [esi + 0xc]
mov edx, ebx
xor edx, 0x7047d0da
mov eax, ebx
xor eax, 0x7047d0de
mov ecx, ebx
xor ecx, 0x7047d0c5
mov dword [esi + 0x14], eax
mov dword [esi + 0x20], ecx
mov dword [esi + eax + 0x58], ecx
mov eax, ebx
xor eax, 0x7047d0cf
mov dword [esi + 8], edx
mov dword [esi + 0xc0], eax
mov dword [esi + edx + 0x58], eax
mov ecx, ebx
xor cl, 0x4e
movzx eax, byte [0xa53a56]
mov byte [esi], cl
cmp al, cl
je 0x753ca5
mov eax, dword [esi + 0xc]
mov ecx, eax
xor cl, 0x9b
mov edx, eax
xor dl, 0x39
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa53a56], dl
je 0x753c32
cmp al, byte [esi]
jne 0x753c20
jmp 0x753ca5
nop
mov eax, dword [esi + 0xc]
mov ecx, eax
xor ecx, 0x75256230
mov dword [esi + 4], ecx
mov edx, eax
xor edx, 0x7047d0cc
mov ecx, eax
xor cl, 0x61
mov ch, al
xor ch, 0x9e
cmp edx, 2
mov edi, 1
mov dword [esi + 0x10], edx
cmovge edi, edx
xor ebx, ebx
xor ch, cl
nop word cs:[eax + eax]
nop
mov eax, dword [esi + 4]
add eax, ebx
xor edx, edx
div dword [esi + 0x10]
movzx eax, byte [edx + 0x9d8a00]
and al, ch
xor al, cl
xor byte [ebx + 0xa53a50], al
inc ebx
cmp edi, ebx
jne 0x753c70
nop
movzx eax, byte [esi]
xchg byte [0xa53a56], al
mov dword [esi + 0x168], 0xffffffff
nop
mov eax, dword [0xa53b40]
mov ecx, dword [0xa53b14]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
lea eax, [esi + 0x58]
mov edi, dword [esi + 0xc0]
push edi
push 0xa53a50
mov dword [esi + 0x24], eax
push eax
call ecx
add esp, 0xc
mov byte [esi + edi + 0x58], 0
mov dword [esi + 0x168], 9
call fcn.00887470
mov dword [esi + 0x10], eax
nop
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xc]
mov edx, eax
xor edx, 0x7047d0df
mov edi, eax
xor edi, 0x7047d0c0
mov dword [esi], edi
xor al, 0xfa
mov byte [esi + 4], al
mov dword [esi + 0x40], edx
lea ebx, [esi + edx]
add ebx, 0x128
xor ecx, ecx
nop
mov edi, dword [esi + 0x10]
nop dword [eax + eax]
nop
mov dword [esi + 0x10], ebx
mov eax, edi
xor edx, edx
div dword [esi]
mov ebx, dword [esi + 0x10]
or dl, byte [esi + 4]
mov byte [ebx - 1], dl
dec ebx
inc ecx
cmp edi, dword [esi]
mov edi, eax
jae 0x753d30
nop
mov edx, dword [esi + 8]
mov dword [esi + edx + 0x28], 0
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0x20]
mov dword [esi + eax + 0x28], edi
mov byte [esi + 0x28], 0
cmp ecx, edi
jbe 0x753d90
nop
mov dword [esi + 0x168], 9
sub esp, 0xc
movzx eax, byte [esi + 0x54]
mov byte [esp + 4], al
mov dword [esp + 8], ebx
mov dword [esp], ecx
lea ecx, [esi + 0x28]
call fcn.006704d0
jmp 0x753dc7
nop
mov dword [esi + edx + 0x28], ecx
mov eax, dword [0xa53b30]
mov edi, ecx
mov ecx, dword [0xa53b28]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
lea eax, [esi + 0x28]
push edi
push ebx
push eax
call ecx
add esp, 0xc
mov byte [esi + edi + 0x28], 0
nop
mov eax, dword [esi + 8]
mov edi, dword [esi + eax + 0x28]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x20]
cmp dword [esi + eax + 0x28], ecx
jbe 0x753de0
mov eax, dword [esi + 0x28]
jmp 0x753de3
lea eax, [esi + 0x28]
mov dword [esi + 0x10], eax
mov edx, dword [esi + 8]
mov ebx, dword [esi + edx + 0x58]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x58]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x753e2d
nop
mov dword [esi + 0x168], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0x128]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esi + 0x58]
call fcn.00671270
jmp 0x753e89
nop
mov dword [esi + 0x90], edi
add edi, ebx
mov dword [esi + 0xa8], edi
mov dword [esi + edx + 0x58], edi
cmp eax, dword [esi + 0x20]
jbe 0x753e4b
mov eax, dword [esi + 0x58]
mov dword [esi + 0x24], eax
mov eax, dword [0xa53b30]
mov ecx, dword [0xa53b28]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov edi, dword [esi + 0x24]
add ebx, edi
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
push dword [esi + 0x90]
push dword [esi + 0x10]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0xa8]
mov byte [edi + eax], 0
nop
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x28]
cmp eax, dword [esi + 0x20]
jbe 0x753eec
lea edi, [eax + 1]
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0x7047df35
cmp edi, ecx
mov ecx, dword [esi + 0x28]
jbe 0x753ee1
mov edi, ebx
xor edi, 0x8fb82f36
mov edx, dword [ecx + edi]
cmp byte [0xa8c591], 0
jne 0x753ed3
add ecx, edi
sub ecx, edx
mov edi, ebx
xor edi, 0x7047d0ea
cmp ecx, edi
jae 0x75572f
mov ecx, ebx
xor ecx, 0x7047d0ee
add eax, ecx
mov edi, eax
mov ecx, edx
nop
push edi
push ecx
call fcn.0091d82d
add esp, 8
nop
mov edi, dword [esi + 8]
mov eax, dword [esi + edi + 0x58]
mov ecx, dword [esi + 0x14]
mov ecx, dword [esi + ecx + 0x58]
cmp ecx, eax
jne 0x753f36
nop
mov dword [esi + 0x168], 9
sub esp, 0x10
movzx eax, byte [esi + 0x28]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x9d88c8
mov dword [esp], 1
lea ecx, [esi + 0x58]
call fcn.00671270
jmp 0x753f62
lea edx, [eax + 1]
mov dword [esi + edi + 0x58], edx
cmp ecx, dword [esi + 0x20]
jbe 0x753f47
mov ecx, dword [esi + 0x58]
jmp 0x753f4a
lea ecx, [esi + 0x58]
mov edx, dword [esi + 0xc]
xor dl, 0xe7
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], 0
mov dword [esi + 0x168], 9
call fcn.00887450
mov ecx, eax
mov eax, dword [esi + 0x40]
lea ebx, [esi + eax]
add ebx, 0x128
xor edi, edi
nop word [eax + eax]
nop
mov dword [esi + 0x10], ebx
mov eax, ecx
xor edx, edx
div dword [esi]
mov ebx, dword [esi + 0x10]
or dl, byte [esi + 4]
mov byte [ebx - 1], dl
dec ebx
inc edi
cmp ecx, dword [esi]
mov ecx, eax
jae 0x753f80
nop
mov edx, dword [esi + 8]
mov dword [esi + edx + 0x28], 0
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x20]
mov dword [esi + eax + 0x28], ecx
mov byte [esi + 0x28], 0
cmp edi, ecx
jbe 0x753fe0
nop
mov dword [esi + 0x168], 9
sub esp, 0xc
movzx eax, byte [esi + 0x54]
mov byte [esp + 4], al
mov dword [esp + 8], ebx
mov dword [esp], edi
lea ecx, [esi + 0x28]
call fcn.006704d0
jmp 0x754015
nop
mov dword [esi + edx + 0x28], edi
mov eax, dword [0xa53b30]
mov ecx, dword [0xa53b28]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
lea eax, [esi + 0x28]
push edi
push ebx
push eax
call ecx
add esp, 0xc
mov byte [esi + edi + 0x28], 0
nop
mov eax, dword [esi + 8]
mov edi, dword [esi + eax + 0x28]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x20]
cmp dword [esi + eax + 0x28], ecx
jbe 0x75402e
mov eax, dword [esi + 0x28]
jmp 0x754031
lea eax, [esi + 0x28]
mov dword [esi], eax
mov edx, dword [esi + 8]
mov ebx, dword [esi + edx + 0x58]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x58]
mov ecx, eax
sub ecx, ebx
cmp ecx, edi
jae 0x754079
nop
mov dword [esi + 0x168], 0xb
sub esp, 0x10
movzx eax, byte [esi + 0x128]
mov byte [esp + 4], al
mov dword [esp + 0xc], edi
mov eax, dword [esi]
mov dword [esp + 8], eax
mov dword [esp], edi
lea ecx, [esi + 0x58]
call fcn.00671270
jmp 0x7540c8
lea ecx, [ebx + edi]
mov dword [esi + edx + 0x58], ecx
cmp eax, dword [esi + 0x20]
mov dword [esi + 4], ecx
jbe 0x75408d
mov edx, dword [esi + 0x58]
jmp 0x754090
lea edx, [esi + 0x58]
mov dword [esi + 0x10], edx
mov eax, dword [0xa53b30]
mov ecx, dword [0xa53b28]
sub ecx, dword [esi + 0x18]
add ecx, eax
add ebx, edx
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
push edi
push dword [esi]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
mov byte [ecx + eax], 0
nop
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x28]
mov ecx, dword [0x9d893c]
mov dword [esi + 0x24], ecx
mov ecx, dword [0x9d89e8]
mov dword [esi + 0x40], ecx
mov ecx, 0x9d89ec
add ecx, dword [0x9d89ec]
mov dword [esi + 0xbc], ecx
cmp eax, dword [esi + 0x20]
jbe 0x754158
nop
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0x6c748ed0
mov edx, eax
sub edx, ecx
inc edx
mov edi, edx
xor edi, ecx
and edx, ecx
lea edx, [edi + edx*2]
mov ecx, ebx
xor ecx, 0x7047df35
cmp edx, ecx
mov ecx, dword [esi + 0x28]
jbe 0x75414d
mov edx, ebx
xor edx, 0x8fb82f36
lea edi, [ecx + edx]
mov ecx, dword [ecx + edx]
sub edi, ecx
mov edx, ebx
xor edx, 0x7047d0ea
cmp edi, edx
jae 0x75573f
mov edx, ebx
xor edx, 0x7047d0ee
add eax, edx
mov edx, eax
nop
push edx
push ecx
call fcn.0091d82d
add esp, 8
nop
mov ebx, dword [esi + 8]
mov eax, dword [esi + ebx + 0x58]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + ecx + 0x58]
cmp edx, eax
jne 0x7541a2
nop
mov dword [esi + 0x168], 9
sub esp, 0x10
movzx eax, byte [esi + 0x28]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x9d88c8
mov dword [esp], 1
lea ecx, [esi + 0x58]
call fcn.00671270
jmp 0x7541d7
mov ecx, eax
xor ecx, 1
mov edi, eax
and edi, 1
lea ecx, [ecx + edi*2]
mov dword [esi + ebx + 0x58], ecx
cmp edx, dword [esi + 0x20]
jbe 0x7541bd
mov edx, dword [esi + 0x58]
jmp 0x7541c0
lea edx, [esi + 0x58]
mov ebx, dword [esi + 0xc]
xor bl, 0xe7
mov byte [edx + eax], bl
mov byte [edx + ecx], 0
mov dword [esi + 0x168], 2
nop
mov dword [esi + 0x168], 2
call fcn.00922d51
mov dword [esi], eax
mov ecx, edx
mov eax, dword [esi + 0xc]
mov edi, eax
shr edi, 5
mov ebx, eax
shl ebx, 0x1b
xor ebx, eax
mov dword [esi + 0x70], ebx
xor ebx, 0x2047d0ae
mov eax, dword [esi]
mul ebx
mov dword [esi + 0x80], edi
xor edi, 0x3823e86
imul edi, dword [esi]
add edx, edi
imul ecx, ebx
add ecx, edx
mov dword [esi + 0x168], 9
lea edx, [esi + 0x28]
push ecx
push eax
mov dword [esi], edx
push edx
call fcn.00757780
add esp, 0xc
nop
mov eax, dword [esi + 8]
mov edx, dword [esi + eax + 0x28]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x20]
cmp dword [esi + eax + 0x28], ecx
jbe 0x754250
mov eax, dword [esi + 0x28]
mov dword [esi], eax
mov edi, dword [esi + 8]
mov ebx, dword [esi + edi + 0x58]
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x58]
mov ecx, eax
sub ecx, ebx
cmp ecx, edx
jae 0x754296
nop
mov dword [esi + 0x168], 0xa
sub esp, 0x10
movzx eax, byte [esi + 0x128]
mov byte [esp + 4], al
mov dword [esp + 0xc], edx
mov eax, dword [esi]
mov dword [esp + 8], eax
mov dword [esp], edx
lea ecx, [esi + 0x58]
call fcn.00671270
jmp 0x7542ed
mov ecx, ebx
xor ecx, edx
mov dword [esi + 4], edx
mov edx, ebx
and edx, dword [esi + 4]
lea ecx, [ecx + edx*2]
mov dword [esi + 0x10], ecx
mov dword [esi + edi + 0x58], ecx
cmp eax, dword [esi + 0x20]
jbe 0x7542b6
mov edi, dword [esi + 0x58]
jmp 0x7542b9
lea edi, [esi + 0x58]
mov eax, dword [0xa53b30]
mov ecx, dword [0xa53b28]
sub ecx, dword [esi + 0x18]
add ecx, eax
add ebx, edi
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
push dword [esi + 4]
push dword [esi]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
nop
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x28]
cmp eax, dword [esi + 0x20]
jbe 0x754369
lea edi, [eax + 1]
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0x7047df35
cmp edi, ecx
mov edx, dword [esi + 0x28]
jbe 0x75435e
mov edi, ebx
xor edi, 0x8fb82f36
mov ecx, dword [edx + edi]
mov dword [esi], ecx
xor edi, edx
not edx
mov ecx, ebx
xor ebx, 0x7047d0c9
and ebx, edx
or ebx, edi
not ebx
add ebx, ebx
mov edx, ebx
xor edx, edi
and ebx, edi
lea edx, [edx + ebx*2]
mov ebx, dword [esi]
sub edx, ebx
mov edi, ecx
xor edi, 0x7047d0ea
cmp edx, edi
jae 0x75574f
xor ecx, 0x7047d0ee
mov edi, eax
xor edi, ecx
and ecx, eax
lea edi, [edi + ecx*2]
mov edx, ebx
nop
push edi
push edx
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [esi + 8]
mov eax, dword [esi + eax + 0x58]
mov ecx, dword [esi + 0x14]
mov ecx, dword [esi + ecx + 0x58]
mov edx, ecx
sub edx, eax
mov ebx, dword [esi + 0xc]
mov edi, ebx
xor edi, 0x7047d0ce
cmp edx, edi
nop
mov dword [esi + 0x88], edi
jae 0x7543d5
nop
movzx eax, byte [0xa53a65]
mov ecx, ebx
xor cl, 0x60
mov byte [esi], cl
cmp al, cl
je 0x754478
mov eax, dword [esi + 0xc]
mov ecx, eax
xor cl, 0xa9
mov edx, eax
xor dl, 0x6f
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa53a65], dl
je 0x754415
cmp al, byte [esi]
jne 0x7543c0
jmp 0x754478
nop
mov dword [esi], eax
neg eax
neg edi
mov ebx, eax
xor ebx, edi
and edi, eax
lea edx, [ebx + edi*2]
mov edi, edx
neg edi
mov eax, dword [esi + 8]
mov dword [esi + eax + 0x58], edi
cmp ecx, dword [esi + 0x20]
jbe 0x7543fa
mov ecx, dword [esi + 0x58]
jmp 0x7543fd
lea ecx, [esi + 0x58]
mov edi, dword [esi + 0xc]
xor edi, 0x153fb5e4
mov eax, dword [esi]
mov dword [ecx + eax], edi
sub ecx, edx
mov byte [ecx], 0
jmp 0x7544ab
nop
mov eax, dword [esi + 0xc]
xor eax, 0xc1c45f79
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc0]
cmp eax, 2
mov ebx, 1
cmovge ebx, eax
xor ecx, ecx
nop
mov edi, dword [esi + 0x88]
nop dword [eax + eax]
nop
mov eax, dword [esi + 4]
add eax, ecx
xor edx, edx
div edi
not edx
movzx eax, byte [edi + edx + 0x9d8a10]
xor al, byte [esi + 0xc]
xor al, 0xe5
add byte [ecx + 0xa53a60], al
inc ecx
cmp ebx, ecx
jne 0x754440
nop
movzx eax, byte [esi]
xchg byte [0xa53a65], al
mov dword [esi + 0x168], 9
nop
mov dword [esi + 0x168], 9
sub esp, 0x10
movzx eax, byte [esi + 0x28]
mov byte [esp + 4], al
mov eax, dword [esi + 0x88]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0xa53a60
lea ecx, [esi + 0x58]
call fcn.00671270
nop
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x9c]
mov dword [edx + ecx], 0
mov eax, dword [esi + 0xc]
mov edi, eax
xor edi, 0x7047d0d2
mov dword [esi + 0xac], edi
mov dword [edx + edi], 0
mov edx, dword [esi + 8]
mov edx, dword [esi + edx + 0x140]
mov dword [esi], edx
xor eax, 0x7047d0cd
mov dword [esi + 0x78], eax
cmp dword [esi + ecx + 0x140], eax
jbe 0x7544fa
mov eax, dword [esi + 0x140]
mov dword [esi + 0x1c], eax
mov ebx, dword [esi + 0x4c]
add ebx, dword [esi + 0x88]
mov edi, dword [esi + 0xc]
mov eax, edi
xor eax, 0x7047d0c2
mov dword [esi + 0xc0], eax
cmp dword [esi], eax
nop
mov dword [esi + 0x4c], ebx
jae 0x754552
nop
mov eax, dword [0xa53b40]
mov ecx, dword [0xa53b14]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
push dword [esi + 8]
push dword [esi + 0x1c]
push ebx
call ecx
add esp, 0xc
mov ecx, 7
jmp 0x75461e
nop
mov ecx, dword [esi]
or ecx, dword [esi + 0x78]
cmp ecx, 0x7ffffffe
mov edx, 0x7ffffffe
cmovb edx, ecx
mov eax, edi
xor eax, 0x7047d734
cmp ecx, eax
mov dword [esi + 4], edx
lea eax, [edx + edx]
jbe 0x7545c9
mov edx, edi
xor edx, 0xfb82f24
cmp ecx, edx
mov dword [esi + 0x168], 0x11
jae 0x75575f
mov ecx, edi
xor ecx, 0x7047d0ef
add eax, ecx
push eax
call fcn.0091d7fd
add esp, 4
nop
mov edx, dword [esi + 0xc]
mov ecx, edx
xor ecx, 0x8fb82f2a
mov edi, edx
xor edi, 0x7047d0e9
add edi, eax
and edi, ecx
mov ecx, edx
xor ecx, 0x8fb82f36
mov dword [edi + ecx], eax
jmp 0x7545e1
add eax, 2
mov dword [esi + 0x168], 0x11
push eax
call fcn.0091d7fd
add esp, 4
mov edi, eax
nop
mov eax, dword [esi + 0x4c]
mov dword [eax], edi
mov eax, dword [0xa53b40]
mov ecx, dword [0xa53b14]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov eax, dword [esi]
lea ebx, [eax*2 + 2]
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
push ebx
push dword [esi + 0x1c]
push edi
call ecx
add esp, 0xc
nop
mov ecx, dword [esi + 4]
nop
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x9c]
mov eax, dword [esi]
mov dword [edi + edx], eax
mov eax, dword [esi + 0xac]
mov dword [edi + eax], ecx
lea eax, [esi + 0x128]
mov dword [edi], eax
mov ecx, dword [esi + 0xc]
xor ecx, 0x7047d0d6
lea eax, [esi + 0x58]
mov dword [edi + ecx], eax
mov ecx, dword [esi + 0x20]
cmp dword [esi + edx + 0x58], ecx
jbe 0x754659
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 8]
mov ecx, dword [esi + edx + 0x58]
add ecx, eax
mov dword [esi + edx + 0x28], 0
mov edx, dword [esi + 0x78]
mov edi, dword [esi + 0x14]
mov dword [esi + edi + 0x28], edx
mov word [esi + 0x28], 0
mov dword [esi + 0x168], 0x12
lea edx, [esi + 0x28]
push 0
mov dword [esi + 0x98], edx
push edx
push ecx
push eax
call fcn.00786360
add esp, 0x10
nop
mov eax, dword [esi + 0xc]
mov ecx, eax
shl ecx, 0x1f
mov dword [esi + 0x74], ecx
shl eax, 0x1c
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x14]
cmp dword [esi + ecx + 0x28], eax
jbe 0x7546c1
mov eax, dword [esi + 0x28]
mov dword [esi + 0x98], eax
mov ecx, dword [esi + 0xc]
xor dword [esi + 0x74], ecx
xor dword [esi + 0x48], ecx
mov eax, ecx
shr eax, 1
mov dword [esi + 0x94], eax
mov eax, ecx
shr eax, 4
mov dword [esi + 0x44], eax
mov eax, dword [0xa53dd0]
xor eax, ecx
cmp eax, 0x8a1f9bfe
mov eax, dword [esi + 8]
mov eax, dword [esi + eax + 0x28]
mov ecx, dword [esi + 0x98]
lea eax, [ecx + eax*2]
mov dword [esi + 0xdc], eax
jne 0x754717
nop
mov dword [0xa8c6f4], 0
mov dword [0xa53de4], 0x8d63b015
jmp 0x754742
nop
mov eax, dword [0xa8c6f4]
lea ecx, [eax + 1]
mov dword [0xa8c6f4], ecx
test ecx, eax
je 0x754742
mov dword [esi + 0x1c], 0
mov al, 1
mov dword [esi + 4], eax
mov dword [esi + 0x24], 0
jmp 0x7550c5
nop
mov ecx, dword [esi + 0xbc]
mov eax, dword [ecx]
cmp dword [esi + 0x40], 0
jle 0x7550b0
mov edx, eax
mov eax, dword [esi + 0x74]
xor eax, 0xdf3ab30d
mov edi, dword [esi + 0x48]
xor edi, 0x80c54cf2
add edi, eax
mov dword [esi + 0x90], edi
add edx, ecx
mov dword [esi + 0x10], edx
mov eax, dword [0xa53dd8]
mov edi, dword [esi + 0xc]
xor eax, edi
mov dword [esi + 0xa8], eax
mov edx, edi
shr edx, 3
mov dword [esi + 8], edx
mov eax, edi
shl eax, 0x1d
xor eax, edi
mov dword [esi + 4], eax
xor eax, 0x3047d0c2
mov dword [esi + 0x124], eax
mov eax, edx
xor eax, 0xe08fa19
mov dword [esi + 0x120], eax
lea eax, [edi*8]
mov dword [esi], eax
xor eax, 0xeb22530b
mov dword [esi + 0x1c], eax
xor edi, 0xc4e23758
mov ebx, dword [esi + 0x94]
xor ebx, 0xbc99896d
mov eax, dword [esi + 0x74]
xor eax, 0xb0af486d
mov ecx, dword [esi + 4]
xor ecx, 0xf50b792
mov edx, dword [esi + 8]
xor edx, 0x754d64ee
add ecx, eax
adc edx, ebx
add ecx, edi
adc edx, dword [esi + 0x1c]
mov eax, dword [esi + 0xc]
lea edi, [eax*4]
mov dword [esi + 0xb8], edi
xor edi, 0x57fc698c
mov ebx, eax
xor ebx, 0x3b1dc8a7
add ebx, ecx
adc edi, edx
add ebx, 2
mov dword [esi + 0x118], ebx
adc edi, 0
mov dword [esi + 0x11c], edi
xor dword [esi + 0xb8], 0xc11f4328
mov edi, eax
xor eax, 0x8fb82f31
mov dword [esi + 0x114], eax
mov eax, dword [0xa53de0]
xor eax, edi
mov dword [esi + 0x110], eax
mov eax, dword [esi + 4]
xor eax, 0x3047d0c9
mov dword [esi + 0xb4], eax
mov edx, dword [esi]
xor edx, 0xd8afb4aa
mov eax, edi
xor eax, 0xa5c83cb8
mov ecx, edi
shr ecx, 2
mov ebx, edi
shl ebx, 0x1e
xor ebx, edi
mov dword [esi + 0x1c], ebx
mov edi, ebx
xor edi, 0xda37c347
mov ebx, ecx
xor ebx, 0xb97f3937
add edi, eax
adc ebx, edx
add edi, 2
mov dword [esi + 0x108], edi
adc ebx, 0
mov dword [esi + 0x104], ebx
mov edx, dword [esi + 4]
xor edx, 0xfea0cadf
mov eax, dword [esi + 8]
xor eax, 0xafd968d
mov edi, dword [esi + 0x44]
xor edi, 0x7c0eee67
mov ebx, dword [esi + 0x48]
xor ebx, 0xe15f3520
add ebx, edx
adc edi, eax
add ebx, 2
mov dword [esi + 0xfc], ebx
adc edi, 0
mov dword [esi + 0x100], edi
mov ebx, dword [esi + 0xc]
lea edx, [ebx + ebx]
mov dword [esi + 0x84], edx
mov eax, edx
xor eax, 0x673fd9cc
mov dword [esi + 0x8c], eax
mov edi, ebx
xor edi, 0x98db199b
xor edx, 0xf9b2f54b
xor ebx, 0x31199925
mov eax, dword [esi + 0x1c]
xor eax, 0xe724e664
xor ecx, 0x645e7395
add eax, ebx
adc ecx, edx
mov edx, dword [esi]
xor edx, 0x64fc2d70
mov ebx, dword [esi + 0xc]
xor ebx, 0xcee666da
add eax, edi
adc ecx, dword [esi + 0x8c]
add eax, ebx
adc ecx, edx
add eax, 2
mov dword [esi + 0xf8], eax
adc ecx, 0
mov dword [esi + 0x10c], ecx
mov edx, dword [esi]
xor edx, 0x8df1a120
mov ebx, dword [esi + 0xc]
xor ebx, 0x552b2dcc
mov eax, dword [esi + 0x80]
xor eax, 0x6c07f347
mov ecx, dword [esi + 0x70]
xor ecx, 0xaf807fb2
mov edi, dword [esi + 0x44]
xor edi, 0xf734a583
mov dword [esi + 0x8c], edi
mov edi, dword [esi + 0x48]
xor edi, 0xad4d233
mov dword [esi + 0x50], edi
add ecx, ebx
adc eax, edx
movd xmm3, ecx
movd xmm1, eax
mov eax, dword [esi + 0x48]
movd xmm4, eax
movd xmm5, dword [esi]
mov ebx, dword [esi + 0xc]
movd xmm2, ebx
movdqa xmm0, xmm2
punpckldq xmm0, xmm5
movd xmm5, dword [esi + 0x84]
punpckldq xmm2, xmm5
movd xmm5, dword [esi + 0x44]
movd xmm6, eax
punpckldq xmm6, xmm5
punpcklqdq xmm5, xmm4
mov edx, dword [esi + 0x70]
movd xmm4, edx
mov edi, dword [esi + 0x80]
movd xmm7, edi
punpckldq xmm4, xmm7
movd xmm7, dword [esi + 0x50]
mov ecx, ebx
xor ecx, 0x82144cbb
mov eax, ebx
xor eax, 0x51942692
add eax, ecx
mov ecx, ebx
xor ecx, 0x7debb344
add eax, ecx
mov ecx, dword [esi + 0x1c]
xor ecx, 0xc45df2c0
add eax, ecx
mov ecx, edx
xor ecx, 0xeba20d3f
add eax, ecx
mov edx, dword [esi + 0x74]
mov ecx, edx
xor ecx, 0xae6bd96d
add ecx, eax
mov eax, ebx
xor eax, 0x73c7eeb1
add ecx, eax
mov eax, edx
xor eax, 0xfcea4a5d
add ecx, eax
mov edx, ebx
xor edx, 0x8c38114e
add edx, ecx
mov eax, ebx
xor eax, 0x315b5a2
add edx, eax
add edx, 5
mov dword [esi + 0xf4], edx
mov edx, edi
xor edx, 0x85250853
mov ecx, dword [esi + 0x70]
xor ecx, 0x5c294597
mov eax, ebx
xor eax, 0x91f19e0
mov dword [esi + 0x1c], eax
mov eax, ebx
xor eax, 0xf3d6ba68
mov dword [esi + 0x50], eax
xor dword [esi + 0x84], 0xa2b7ce9d
mov eax, ebx
xor eax, 0x1c06d7e2
mov edi, ebx
xor edi, 0xcd80403c
mov dword [esi + 0x7c], edi
mov edi, ebx
xor edi, 0xe3f9281d
add eax, ecx
mov ecx, dword [esi + 0x84]
adc ecx, edx
punpcklqdq xmm1, xmm3
movdqa xmm3, xmm4
shufps xmm3, xmm1, 0x24
movq xmm1, qword [0x9d8760]
pxor xmm1, xmm4
paddq xmm3, xmmword [0x9d6080]
movsd xmm3, xmm1
movd xmm1, dword [esi + 0x8c]
punpckldq xmm7, xmm1
movd xmm1, dword [0x9d8820]
punpcklqdq xmm1, xmm7
pshufd xmm7, xmm0, 0x44
pxor xmm7, xmmword [0x9d8730]
paddq xmm1, xmm7
movss xmm7, dword [esi + 4]
add eax, dword [esi + 0x50]
adc ecx, dword [esi + 0x1c]
add eax, edi
adc ecx, dword [esi + 0x7c]
add eax, 2
mov dword [esi + 0xf0], eax
adc ecx, 0
mov dword [esi + 0x84], ecx
mov ecx, ebx
xor ecx, 0xfe9db73f
mov edx, ebx
xor edx, 0x4d63541b
mov edi, dword [esi]
xor edi, 0xf31b1e5a
mov eax, ebx
xor eax, 0xb29cabe4
add eax, edx
adc edi, ecx
pshufd xmm2, xmm2, 0x44
pxor xmm2, xmmword [0x9d8740]
paddq xmm1, xmm2
movss xmm2, dword [esi + 8]
shufps xmm5, xmm0, 0x42
xorps xmm5, xmmword [0x9d8750]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x90]
add ecx, edx
add ecx, 0x9d893d
mov dword [esi + 0x90], ecx
add eax, 1
adc edi, 0
paddq xmm1, xmm5
movd xmm5, edi
paddq xmm1, xmm3
movd xmm3, eax
movlhps xmm2, xmm7
shufps xmm4, xmm2, 0x24
punpckldq xmm3, xmm5
movd xmm2, dword [0x954230]
punpcklqdq xmm2, xmm3
punpcklqdq xmm0, xmm6
pxor xmm0, xmmword [0x9d8780]
paddq xmm0, xmm2
xorps xmm4, xmmword [0x9d8770]
paddq xmm0, xmm4
mov eax, ebx
xor eax, 0x78d667b6
mov dword [esi + 0xec], eax
mov eax, ebx
xor eax, 0xf2a45d42
mov ecx, dword [esi + 0x88]
mov dword [esi + 0xb0], eax
sub ecx, eax
mov dword [esi + 0xe8], ecx
mov eax, dword [0xa53de4]
xor eax, ebx
mov dword [esi + 0x8c], eax
xor ecx, ecx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x24], 0
mov dword [esi + 8], 0
mov dword [esi + 0x50], 0
jmp 0x754c48
mov edi, dword [esi + 0x1c]
not edi
mov ebx, dword [esi + 0x24]
not ebx
mov ecx, dword [esi + 4]
mov eax, ecx
and eax, edi
xor edi, ecx
mov ecx, edx
and edx, ebx
xor ebx, ecx
not ebx
or ebx, edx
mov dword [esi + 0x24], ebx
not edi
or edi, eax
mov dword [esi + 0x1c], edi
mov ecx, dword [esi]
add ecx, dword [esi + 0xc0]
cmp ecx, dword [esi + 0x40]
jge 0x7550a7
mov eax, dword [esi + 0x90]
mov dword [esi], ecx
lea edx, [eax + ecx]
cmp dword [esi + 0xa8], 0x3ff61e53
jne 0x754ce0
nop
mov eax, dword [esi + 0x118]
add eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x11c]
mov ecx, dword [esi + 8]
adc ebx, ecx
sub eax, edx
sbb ebx, 0
mov edi, ebx
mov dword [esi + 8], ecx
xor edi, ecx
mov dword [esi + 0x7c], edx
mov edx, eax
xor edx, dword [esi + 0x10]
and ebx, ecx
mov ecx, dword [esi + 0x10]
and eax, ecx
shld ebx, eax, 1
add eax, eax
add edx, ecx
adc edi, dword [esi + 8]
add edx, eax
mov dword [0xa53ddc], 0x94cb051a
adc edi, ebx
mov ebx, edx
cmp edx, dword [esi + 0xc0]
mov eax, edi
sbb eax, dword [esi + 0xb8]
mov eax, dword [esi + 0x114]
mov edx, dword [esi + 0x7c]
mov ecx, dword [edx + eax*8]
mov dword [esi + 4], ecx
mov edx, dword [edx + eax*8 + 4]
jb 0x754d08
jmp 0x755080
nop
mov ebx, dword [esi + 0x10]
sub ebx, edx
mov edi, dword [esi + 8]
sbb edi, 0
cmp ebx, dword [esi + 0x124]
mov eax, edi
sbb eax, dword [esi + 0x120]
mov eax, dword [edx]
mov dword [esi + 4], eax
mov edx, dword [edx + 4]
jge 0x755080
mov dword [esi + 0x10], edx
cmp dword [esi + 0x110], 0x1f2f7e8c
mov dword [esi + 0x7c], ebx
jne 0x754df0
mov eax, ebx
mov ecx, dword [esi + 0xb4]
shl eax, cl
test cl, 0x20
mov edx, 0
cmovne eax, edx
mov edi, 0xffffffff
mov ecx, eax
shl edi, cl
test al, 0x20
mov ecx, edi
cmovne ecx, edx
mov eax, 0xffffffff
cmove edi, eax
mov dword [esi + 8], edi
mov edi, ecx
mov dword [esi + 0xa4], ecx
not edi
mov eax, ecx
mov ecx, dword [esi + 4]
and eax, ecx
mov edx, edi
and edi, ecx
mov dword [esi + 0xa0], edi
not ecx
and edx, ecx
or eax, edx
mov dword [esi + 4], eax
mov eax, dword [esi + 8]
mov edx, eax
not edx
mov ebx, eax
mov eax, dword [esi + 0x10]
and ebx, eax
mov edi, edx
and edx, eax
not eax
and edi, eax
or ebx, edi
xor eax, dword [esi + 8]
xor ecx, dword [esi + 0xa4]
or edx, eax
mov edi, dword [esi + 0xa0]
or edi, ecx
mov eax, dword [esi + 4]
not eax
and eax, edi
mov dword [esi + 4], eax
not ebx
and ebx, edx
mov edi, dword [esi + 0x50]
mov eax, edi
xor eax, 1
and edi, 1
lea edi, [eax + edi*2]
mov ecx, dword [esi + 0x7c]
add ecx, dword [esi + 0xe8]
mov eax, ecx
xor eax, dword [esi + 0xb0]
mov edx, dword [esi]
sub edx, dword [esi + 0xc0]
add edx, eax
and ecx, dword [esi + 0xb0]
lea edx, [edx + ecx*2]
mov dword [esi], edx
mov edx, ebx
jmp 0x755066
nop
mov ecx, dword [esi + 0xb4]
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
mov eax, 0
cmovne ebx, eax
mov ecx, ebx
sub ecx, dword [esi + 0x108]
mov eax, edi
sbb eax, dword [esi + 0x104]
mov dword [esi + 8], eax
mov eax, ecx
mul ebx
imul edi, ecx
add edx, edi
mov edi, dword [esi + 8]
imul edi, ebx
add edi, edx
mov ecx, ebx
mov edx, eax
shld edi, eax, cl
shl edx, cl
test bl, 0x20
cmovne edi, edx
mov eax, 0
cmovne edx, eax
add edx, dword [esi + 0xfc]
adc edi, dword [esi + 0x100]
shld edi, edx, 1
add edx, edx
add edx, dword [esi + 0xf8]
adc edi, dword [esi + 0x10c]
mov eax, edi
mov ecx, dword [esi + 4]
sub ecx, edx
mov dword [esi + 0xa4], edx
mov edi, dword [esi + 0x10]
sbb edi, eax
mov ebx, eax
mov eax, ecx
mul edx
mov dword [esi + 0xa0], eax
movd xmm2, dword [esi + 4]
imul ecx, ebx
add ecx, edx
mov edx, dword [esi + 0xa4]
imul edi, edx
add edi, ecx
mov ecx, edx
sub ecx, eax
mov eax, ecx
movd xmm3, ebx
sbb ebx, edi
movd xmm4, dword [esi + 0x10]
xor ebx, edi
mov dword [esi + 8], ebx
movd xmm5, edx
punpckldq xmm5, xmm3
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm5
movdqa xmm3, xmm2
paddq xmm3, xmm2
movdqa xmm4, xmm1
psubq xmm4, xmm3
pextrw ecx, xmm4, 4
shl edx, cl
xor eax, dword [esi + 0xa0]
mov dword [esi + 4], eax
test cl, 0x20
mov eax, 0
cmovne edx, eax
movd xmm5, edx
movdqa xmm6, xmm1
paddq xmm6, xmm3
shufps xmm6, xmm4, 0xe4
shufps xmm5, xmm2, 0x30
shufps xmm2, xmm5, 0x84
xorps xmm2, xmm6
movd eax, xmm2
mov ecx, eax
neg ecx
pshufd xmm3, xmm2, 0xee
movd edx, xmm3
mov edi, edx
and edi, ecx
xor ecx, edx
mov edx, dword [esi + 0xf4]
sub edx, eax
add ecx, edx
lea ecx, [ecx + edi*2]
pshufd xmm2, xmm2, 0x55
movd edx, xmm2
mov edi, edx
shld edi, eax, cl
mov ebx, eax
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
mov ecx, 0
cmovne ebx, ecx
and edi, edx
and ebx, eax
mov eax, dword [esi + 4]
sub eax, ebx
mov dword [esi + 0x10], eax
mov ecx, dword [esi + 8]
sbb ecx, edi
mul ebx
imul edi, dword [esi + 0x10]
add edx, edi
imul ecx, ebx
add ecx, edx
mov edi, dword [esi + 4]
add edi, dword [esi + 0xf0]
mov ebx, dword [esi + 8]
adc ebx, dword [esi + 0x84]
sub edi, eax
mov edx, eax
sbb ebx, ecx
mov dword [esi + 8], ebx
mov eax, edi
mov ebx, edx
mul edx
imul edi, ecx
add edi, edx
mov edx, dword [esi + 8]
imul edx, ebx
add edx, edi
or edx, ecx
or eax, ebx
movd xmm2, edx
movd xmm3, eax
punpckldq xmm3, xmm2
pshufd xmm2, xmm3, 0x44
movdqa xmm3, xmm0
psubq xmm3, xmm2
pshufd xmm2, xmm3, 0xff
pshufd xmm4, xmm3, 0xee
movd ecx, xmm4
mov dword [esi + 4], ecx
paddq xmm3, xmm4
movd eax, xmm3
pshufd xmm3, xmm3, 0x55
movd edx, xmm3
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov dword [esi + 0x10], edx
mov ecx, 0
cmovne eax, ecx
mov ebx, dword [esi + 0x7c]
mov ecx, ebx
neg ecx
mov edi, dword [esi + 0x88]
mov edx, edi
xor edx, ecx
and ecx, edi
lea ecx, [edx + ecx*2]
shl ebx, cl
mov edx, ebx
shl edx, cl
xor eax, dword [esi + 4]
mov dword [esi + 4], eax
sub ebx, edx
imul ebx, edx
mov eax, ebx
xor eax, edx
and ebx, edx
lea edx, [eax + ebx*2]
mov ecx, dword [esi + 0xec]
shl edx, cl
sub edx, ecx
mov eax, edx
mov edi, dword [esi + 0xc0]
sub eax, edi
imul eax, edi
add edx, edx
sub eax, edx
add eax, ecx
mov edx, eax
shl edx, cl
movd ecx, xmm2
mov edi, dword [esi + 0x10]
xor edi, ecx
sub edx, eax
neg eax
mov ecx, edx
xor ecx, eax
and eax, edx
add edx, dword [esi]
add edx, ecx
lea eax, [edx + eax*2]
mov edx, edi
mov dword [esi], eax
mov dword [0xa53dd0], 0xd3903037
mov edi, dword [esi + 0x50]
xor edi, 1
nop
mov eax, dword [esi + 0xbc]
lea ecx, [eax + edi*4]
mov dword [esi + 0x50], edi
add ecx, dword [eax + edi*4]
mov dword [esi + 0x10], ecx
mov dword [esi + 8], 0
cmp dword [esi + 0x8c], 0x39f20872
jne 0x754c10
mov eax, dword [esi + 0xc0]
mov ecx, dword [esi]
sub ecx, eax
inc ecx
imul ecx, eax
cmp ecx, dword [esi + 0x40]
jl 0x754c48
mov dword [esi + 4], 0
jmp 0x7550c5
mov dword [esi + 4], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x1c], 0
nop
mov eax, dword [0xa53ddc]
mov dword [esi], eax
mov dword [esi + 0x168], 0x12
push dword [esi + 0xdc]
push dword [esi + 0x98]
push dword [esi + 0x4c]
call fcn.00787810
add esp, 0xc
nop
mov edx, dword [esi + 0x14]
nop
mov ecx, dword [esi]
xor ecx, dword [esi + 0xc]
xor eax, eax
cmp ecx, 0xe7ee8db8
setne al
lea ecx, [eax*8 + 7]
mov eax, dword [esi + edx + 0x28]
cmp eax, ecx
jbe 0x755182
add eax, eax
mov edi, dword [esi + 0xc]
mov ecx, edi
xor ecx, 0x74375218
mov edx, eax
sub edx, ecx
xor edi, 0x9a61f542
mov ebx, edx
xor ebx, edi
and edx, edi
sub ecx, edi
add ecx, ebx
mov ebx, dword [esi + 0xc]
lea edx, [ecx + edx*2]
add edx, 2
mov ecx, ebx
xor ecx, 0x7047df35
cmp edx, ecx
mov ecx, dword [esi + 0x28]
jbe 0x755177
mov edx, ebx
xor edx, 0x8fb82f36
lea edi, [ecx + edx]
mov ecx, dword [ecx + edx]
sub edi, ecx
mov edx, ebx
xor edx, 0x7047d0ea
cmp edi, edx
jae 0x755764
mov edx, ebx
xor edx, 0x7047d0ef
add eax, edx
mov edx, eax
nop
push edx
push ecx
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [0xa53b40]
mov ecx, dword [0xa53b14]
sub ecx, dword [esi + 0x18]
add ecx, eax
mov dword [esi + 0x168], 0xffffffff
call dword [0xa37360]
mov ebx, dword [esi + 0xac]
push ebx
mov edi, dword [esi + 0x4c]
push edi
lea eax, [esi + 0x128]
push eax
call ecx
add esp, 0xc
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x9c]
mov dword [ecx + eax], 0
mov edx, dword [esi + 0x78]
mov dword [ecx + ebx], edx
mov word [edi], 0
mov esp, dword [esi + 0xe0]
mov dword [esi + 0x15c], esp
mov eax, dword [esi + eax + 0x58]
cmp byte [0xa8c694], 0
jne 0x7551f4
nop
cmp eax, dword [esi + 0x20]
jbe 0x755253
lea edi, [eax + 1]
mov ebx, dword [esi + 0xc]
mov ecx, ebx
xor ecx, 0x7047df35
cmp edi, ecx
mov edx, dword [esi + 0x58]
jbe 0x755248
mov edi, ebx
xor edi, 0x8fb82f36
mov ecx, dword [edx + edi]
neg edx
neg edi
mov ebx, edx
xor ebx, edi
and edi, edx
mov dword [esi], ecx
add ebx, ecx
lea edx, [ebx + edi*2]
mov ebx, dword [esi + 0xc]
neg edx
mov edi, ebx
xor edi, 0x7047d0ea
cmp edx, edi
jae 0x755774
mov edx, ebx
xor edx, 0x7047d0ee
add eax, edx
mov edi, eax
mov edx, dword [esi]
nop
push edi
push edx
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [0xa53de8]
mov ebx, dword [esi + 0xc]
xor eax, ebx
cmp eax, 0xaee5b059
mov edx, dword [0x9d88fc]
mov edi, dword [0x9d88f8]
jne 0x75556f
nop
movzx eax, byte [esi + 4]
neg eax
mov dword [esi], eax
mov ecx, dword [esi + 0x80]
xor ecx, 0x63499e2b
mov dword [esi + 0x24], edi
mov edi, dword [esi + 0x70]
xor edi, 0x5e0bd186
mov dword [esi + 0x40], edx
lea eax, [ebx + ebx]
mov dword [esi + 4], eax
xor eax, 0x7fbbfec6
mov edx, ebx
xor edx, 0xf1f42e79
add edx, edi
adc eax, ecx
mov ecx, ebx
shl ecx, 0x1d
xor ecx, ebx
movd xmm3, ecx
mov ecx, ebx
shr ecx, 3
movd xmm1, ecx
mov ecx, ebx
shl ecx, 0x1e
xor ecx, ebx
movd xmm5, ecx
mov ecx, ebx
shr ecx, 2
movd xmm2, ecx
mov ecx, ebx
shl ecx, 4
movd xmm6, ecx
movd xmm4, ebx
movdqa xmm7, xmm4
punpckldq xmm7, xmm6
movdqa xmmword [esi + 0xc0], xmm7
punpckldq xmm3, xmm1
punpcklqdq xmm7, xmm3
pxor xmm7, xmmword [0x9d87b0]
lea edi, [ebx*8]
mov dword [esi + 0x10], edi
movd xmm6, edi
movdqa xmm1, xmm4
punpckldq xmm1, xmm6
punpckldq xmm5, xmm2
movdqa xmm6, xmm1
punpcklqdq xmm6, xmm5
pxor xmm6, xmmword [0x9d87c0]
paddq xmm6, xmm7
movd xmm7, dword [esi + 4]
movdqa xmm2, xmm4
punpckldq xmm2, xmm7
movd xmm7, dword [esi]
shld eax, edx, 1
pshufd xmm7, xmm7, 0x50
movd xmm0, dword [0x9d6ca0]
punpcklqdq xmm0, xmm7
punpcklqdq xmm5, xmm2
pxor xmm5, xmmword [0x9d87d0]
paddq xmm0, xmm5
add edx, edx
paddq xmm0, xmm6
pshufd xmm5, xmm0, 0xee
paddq xmm5, xmm0
movd edi, xmm5
add edi, edx
pshufd xmm0, xmm5, 0x55
movd edx, xmm0
adc edx, eax
add edi, 2
mov dword [esi + 8], edi
adc edx, 0
mov dword [esi], edx
xor ecx, 0x7fbd2f06
mov edx, ebx
xor edx, 0xc1ca2817
sub edx, dword [esi + 0x24]
sbb ecx, dword [esi + 0x40]
add edx, 1
adc ecx, 0
xor dword [esi + 4], ecx
mov edi, dword [esi + 0x10]
xor edi, 0x6015a09
and edi, ecx
mov eax, ebx
xor eax, 0x3e35d7e8
mov ecx, eax
xor ecx, edx
mov dword [esi + 0x40], ecx
and eax, edx
lea edx, [ebx*4]
movd xmm0, edx
movdqa xmm5, xmm1
punpcklqdq xmm5, xmm3
punpckldq xmm4, xmm0
pshufd xmm0, xmm4, 0x44
pxor xmm5, xmmword [0x9d87e0]
pxor xmm0, xmmword [0x9d87f0]
paddq xmm0, xmm5
pshufd xmm3, xmm0, 0xee
paddq xmm3, xmm0
mov ecx, dword [esi + 4]
xor ecx, 0x64b07dcd
shld edi, eax, 1
add eax, eax
xor dword [esi + 0x10], 0x4c985883
xor ebx, 0x2018324
movd edx, xmm3
add edx, ebx
pshufd xmm0, xmm3, 0x55
movd ebx, xmm0
adc ebx, dword [esi + 0x10]
add eax, dword [esi + 0x40]
adc edi, ecx
add eax, edx
adc edi, ebx
add eax, 2
adc edi, 0
mov ebx, edi
mov ecx, dword [esi + 0x1c]
shld ebx, eax, cl
mov edx, eax
shl edx, cl
test cl, 0x20
cmovne ebx, edx
mov ecx, 0
cmovne edx, ecx
sub edx, eax
sbb ebx, edi
mov eax, dword [esi + 0x44]
xor eax, 0x17771d5b
mov edi, dword [esi + 0x48]
xor edi, 0x8b48dd72
add edi, edx
adc eax, ebx
pshufd xmm0, xmm5, 0xee
movd ecx, xmm0
pshufd xmm0, xmm5, 0xff
sub ecx, edi
movd edx, xmm0
sbb edx, eax
shld eax, edi, cl
shl edi, cl
test cl, 0x20
cmovne eax, edi
mov dword [esi + 0x44], eax
mov eax, 0
cmovne edi, eax
xor dword [esi + 0x80], 0x7cdc3bc3
xor dword [esi + 0x70], 0xc67f57f1
mov ebx, dword [esi + 0x94]
xor ebx, 0xb88212df
mov eax, dword [esi + 0x74]
xor eax, 0x6980a80e
add eax, dword [esi + 0x70]
adc ebx, dword [esi + 0x80]
add ecx, dword [esi + 8]
adc edx, dword [esi]
sub eax, ecx
sbb ebx, edx
add eax, edi
adc ebx, dword [esi + 0x44]
add eax, 1
adc ebx, 0
mov ecx, eax
imul ecx, dword [esi]
mov edi, dword [esi + 8]
mul edi
mov dword [esi + 4], eax
add edx, ecx
mov ecx, edi
imul ebx, edi
add edx, ebx
mov edi, edx
movdqa xmm0, xmm2
punpcklqdq xmm2, xmmword [esi + 0xc0]
pxor xmm2, xmmword [0x9d8800]
punpcklqdq xmm0, xmm1
pxor xmm0, xmmword [0x9d8810]
paddq xmm0, xmm2
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
pshufd xmm0, xmm1, 0x55
movd eax, xmm1
mov ebx, ecx
sub eax, ecx
movd ecx, xmm0
mov edx, dword [esi]
sbb ecx, edx
add eax, dword [esi + 4]
adc ecx, edi
add eax, 2
adc ecx, 0
imul ecx, ebx
imul edx, eax
mov dword [esi], edx
mul ebx
add edx, dword [esi]
add edx, ecx
and edx, edi
and eax, dword [esi + 4]
or eax, edx
mov dword [0xa53df4], 0xbe63d754
sete cl
jmp 0x755626
lea eax, [ebx*4]
movd xmm0, eax
lea eax, [ebx + ebx]
movd xmm1, eax
movd xmm2, dword [esi + 0x48]
movd xmm3, dword [esi + 0x44]
movd xmm4, ebx
movdqa xmm5, xmm4
punpckldq xmm5, xmm0
punpckldq xmm4, xmm1
punpckldq xmm2, xmm3
movdqa xmm0, xmm4
punpcklqdq xmm4, xmm2
pxor xmm4, xmmword [0x9d8790]
punpcklqdq xmm0, xmm5
pxor xmm0, xmmword [0x9d87a0]
paddq xmm0, xmm4
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm0
movd eax, xmm1
sub eax, dword [esi + 0x1c]
pshufd xmm0, xmm1, 0x55
movd ecx, xmm0
sbb ecx, dword [esi + 0x24]
add eax, edi
adc ecx, edx
add eax, 1
adc ecx, 0
mov edx, dword [esi + 0x94]
mov edi, edx
xor edi, 0x28508832
mov dword [esi], edi
mov ebx, dword [esi + 0x74]
mov edi, ebx
xor edi, 0x2b48dd72
xor edx, 0xb601d448
xor ebx, 0x2a2f737
add ebx, edi
adc edx, dword [esi]
xor edx, ecx
xor ebx, eax
or ebx, edx
setne al
mov ecx, dword [esi + 4]
not cl
and cl, al
or cl, byte [0xa8c694]
and cl, 1
mov byte [0xa8c694], cl
mov dword [esi + 0x168], 0x10
lea ecx, [esi + 0x128]
push dword [esi + 0xe4]
call fcn.007571f0
nop
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x128]
cmp eax, dword [esi + 0x78]
jbe 0x7556b3
lea ecx, [eax + eax]
mov edx, ecx
xor edx, 2
and eax, 1
lea edx, [edx + eax*4]
mov ebx, dword [esi + 0xc]
mov eax, ebx
xor eax, 0x7047df35
cmp edx, eax
mov eax, dword [esi + 0x128]
jbe 0x7556a8
mov edx, ebx
xor edx, 0x8fb82f36
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0x7047d0ea
cmp edi, edx
jae 0x755784
mov edx, ebx
xor edx, 0x7047d0ef
add ecx, edx
mov edx, ecx
nop
push edx
push eax
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [esi + 0x14]
mov eax, dword [esi + eax + 0x140]
cmp eax, dword [esi + 0x78]
jbe 0x75571a
lea ecx, [eax + eax]
mov edx, ecx
xor edx, 2
and eax, 1
lea edx, [edx + eax*4]
mov ebx, dword [esi + 0xc]
mov eax, ebx
xor eax, 0x7047df35
cmp edx, eax
mov eax, dword [esi + 0x140]
jbe 0x75570f
mov edx, ebx
xor edx, 0x8fb82f36
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0x7047d0ea
cmp edi, edx
jae 0x755794
xor ebx, 0x7047d0ef
add ecx, ebx
mov edx, ecx
nop
push edx
push eax
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [esi + 0x160]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov dword [esi + 0x168], 0
call fcn.00900ce1
nop
mov dword [esi + 0x168], 1
call fcn.00900ce1
nop
mov dword [esi + 0x168], 3
call fcn.00900ce1
call fcn.0066aec0
nop
mov dword [esi + 0x168], 4
call fcn.00900ce1
nop
mov dword [esi + 0x168], 5
call fcn.00900ce1
nop
mov dword [esi + 0x168], 6
call fcn.00900ce1
nop
mov dword [esi + 0x168], 7
call fcn.00900ce1
lea esi, [ebp - 0x16c]
mov ebp, dword [esi + 0x158]
jmp 0x753ba4