Function at 0x8b80a0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x180
mov esi, esp
mov dword [esi + 0x168], ebp
mov dword [esi + 0x34], edx
mov ebx, ecx
nop
mov dword [esi + 0x16c], esp
mov dword [esi + 0x178], 0xffffffff
lea eax, [esi + 0x170]
mov dword [esi + 0x174], 0x8ba2a0
mov ecx, dword fs:[0]
mov dword [esi + 0x170], ecx
mov dword fs:[0], eax
call fcn.008ba250
mov edx, dword [0xa465e0]
mov ecx, dword [0xa465d0]
mov edi, 0xffffba89
sub edi, eax
mov dword [esi + 0x2c], edi
sub ecx, edi
add ecx, edx
call dword [0xa0535c]
call ecx
mov dword [esi + 0xc], ebx
mov ebx, dword [ebx + 0x10]
mov edx, eax
xor edx, 0x74122624
mov ecx, ebx
mov edi, edx
mov dword [esi + 0x44], edx
and ecx, edx
mov edx, eax
xor edx, 0xf4122624
mov dword [esi + 0x28], edx
cmp ecx, edx
je 0x8b9b4c
nop
mov edx, dword [esi + 0xc]
mov ecx, dword [edx]
mov dword [esi + 0x1c], ecx
mov ecx, eax
xor ecx, 0x8bedd9dc
mov dword [esi + 0x74], ecx
mov dword [esi + 0x30], ebx
add ecx, ebx
mov dword [esi + 0x10], eax
xor eax, 0x8bedd9d7
mov dword [esi + 0x24], eax
cmp ecx, eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x18], eax
nop
mov dword [esi + 0x14], ecx
jbe 0x8b81a8
test ecx, ecx
js 0x8b81b5
mov eax, ecx
or eax, dword [esi + 0x24]
cmp eax, 0x17
mov edx, 0x16
cmovae edx, eax
mov ecx, dword [esi + 0x10]
xor ecx, 0x8bedd626
cmp eax, ecx
mov dword [esi + 0x3c], edx
lea eax, [edx + 1]
ja 0x8b81c1
nop
push eax
call fcn.008ea17d
add esp, 4
mov edi, eax
jmp 0x8b81e5
mov eax, 0xf
lea ecx, [esi + 0x50]
mov dword [esi + 0x20], ecx
jmp 0x8b81f0
mov dword [esi + 0x3c], 0x7fffffff
mov eax, 0x80000000
nop
mov edi, dword [esi + 0x10]
mov ebx, edi
xor ebx, 0x8bedd9fb
add eax, ebx
push eax
call fcn.008ea17d
add esp, 4
add ebx, eax
xor edi, 0x74122638
and edi, ebx
mov dword [edi - 4], eax
nop
mov dword [esi + 0x20], edi
mov dword [esi + 0x50], edi
nop
mov eax, dword [esi + 0x3c]
nop
mov ecx, dword [esi + 0x24]
cmp dword [esi + 0x18], ecx
mov edi, dword [esi + 0x1c]
cmovbe edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], eax
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
sub ecx, dword [esi + 0x2c]
add ecx, eax
call dword [0xa0535c]
mov ebx, dword [esi + 0x30]
push ebx
push edi
mov edi, dword [esi + 0x20]
push edi
call ecx
add esp, 0xc
mov eax, dword [esi + 0x10]
xor eax, 0xa699a9f7
mov dword [esi + 0x3c], eax
mov dword [edi + ebx], eax
mov eax, dword [esi + 0x14]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x34]
mov edx, dword [eax + 0x10]
mov ecx, eax
mov edi, dword [esi + 0x24]
cmp dword [eax + 0x14], edi
jbe 0x8b8252
mov ecx, dword [eax]
mov dword [esi + 0x14], ecx
mov ebx, dword [esi + 0x60]
mov eax, dword [esi + 0x64]
mov ecx, eax
sub ecx, ebx
cmp ecx, edx
jae 0x8b8299
nop
mov dword [esi + 0x178], 6
sub esp, 0x10
movzx eax, byte [esi + 0x118]
mov byte [esp + 4], al
mov dword [esp + 0xc], edx
mov eax, dword [esi + 0x14]
mov dword [esp + 8], eax
mov dword [esp], edx
lea ecx, [esi + 0x50]
call fcn.0066d8c0
mov edi, eax
mov edx, dword [esi + 0x2c]
jmp 0x8b82e8
nop
mov dword [esi + 0x30], edx
add edx, ebx
mov ecx, edx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x60], edx
lea edi, [esi + 0x50]
mov edx, edi
cmp eax, dword [esi + 0x24]
jbe 0x8b82b4
mov edx, dword [esi + 0x50]
mov dword [esi + 0x18], edx
mov eax, dword [0xa465e4]
mov ecx, dword [0xa465c8]
sub ecx, dword [esi + 0x2c]
add ecx, eax
add ebx, edx
call dword [0xa0535c]
push dword [esi + 0x30]
push dword [esi + 0x14]
push ebx
call ecx
mov edx, dword [esi + 0x2c]
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
mov byte [ecx + eax], 0
nop
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
sub ecx, edx
add ecx, eax
mov ebx, dword [esi + 0x10]
xor ebx, 0x8bedd9c0
mov dword [esi + 0x178], 0xffffffff
call dword [0xa0535c]
lea eax, [esi + 0xa0]
mov dword [esi + 0x1c], ebx
push ebx
push edi
mov dword [esi + 0x18], eax
push eax
call ecx
add esp, 0xc
mov dword [edi + 0x10], 0
mov edx, dword [esi + 0x24]
mov dword [edi + 0x14], edx
mov byte [edi], 0
mov ebx, dword [esi + 0xb0]
mov eax, dword [esi + 0xb4]
mov ecx, eax
sub ecx, ebx
mov edi, dword [esi + 0x10]
xor edi, 0x8bedd9d4
cmp ecx, edi
nop
mov dword [esi + 0x20], edi
jae 0x8b8396
nop
movzx eax, byte [0xa4641d]
mov ecx, dword [esi + 0x10]
xor cl, 0xd1
mov byte [esi + 0x14], cl
cmp al, cl
je 0x8b8475
mov eax, dword [esi + 0x10]
mov ecx, eax
xor cl, 0xd5
nop word [eax + eax]
mov al, 1
lock cmpxchg byte [0xa4641d], cl
je 0x8b83fa
cmp al, byte [esi + 0x14]
jne 0x8b8380
jmp 0x8b8475
add edi, ebx
mov ecx, edi
mov dword [esi + 0x48], edi
mov dword [esi + 0xb0], edi
cmp eax, edx
jbe 0x8b83b0
mov eax, dword [esi + 0xa0]
mov dword [esi + 0x18], eax
add ebx, dword [esi + 0x18]
mov dword [esi + 0x38], ebx
movzx eax, byte [0xa4641d]
mov ecx, dword [esi + 0x10]
xor cl, 0xd1
mov byte [esi + 0x14], cl
cmp al, cl
je 0x8b851f
mov eax, dword [esi + 0x10]
mov ecx, eax
xor cl, 0xd5
nop word cs:[eax + eax]
mov al, 1
lock cmpxchg byte [0xa4641d], cl
je 0x8b84b5
cmp al, byte [esi + 0x14]
jne 0x8b83e0
jmp 0x8b851f
nop
mov edi, dword [esi + 0x10]
mov eax, edi
xor eax, 0x910af74b
mov dword [esi + 0x30], eax
xor edi, 0x8bedd9d5
cmp edi, 2
mov ebx, 1
cmovge ebx, edi
xor ecx, ecx
nop dword [eax + eax]
nop
mov eax, dword [esi + 0x30]
add eax, ecx
xor edx, edx
div edi
mov eax, edx
xor eax, 0xfffffffe
add eax, edi
add edx, edx
and edx, 2
sub eax, edx
movzx edx, byte [ecx + 0xa46410]
movzx eax, byte [eax + 0x9bb121]
xor al, byte [esi + 0x10]
xor al, 0xc8
mov ah, al
xor ah, dl
and al, dl
add al, al
add al, ah
mov byte [ecx + 0xa46410], al
inc ecx
cmp ebx, ecx
jne 0x8b8420
nop
movzx eax, byte [esi + 0x14]
xchg byte [0xa4641d], al
mov dword [esi + 0x178], 7
nop
mov dword [esi + 0x178], 7
sub esp, 0x10
movzx eax, byte [esi + 0x118]
mov byte [esp + 4], al
mov eax, dword [esi + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0xa46410
lea ecx, [esi + 0xa0]
call fcn.0066d8c0
mov edi, eax
mov ebx, dword [esi + 0x2c]
jmp 0x8b8562
nop
mov ebx, dword [esi + 0x10]
mov edi, ebx
xor edi, 0x910af74b
xor ebx, 0x8bedd9d5
cmp ebx, 2
mov eax, 1
cmovge eax, ebx
mov dword [esi + 0x30], eax
xor ecx, ecx
nop word [eax + eax]
mov eax, ecx
xor eax, edi
mov edx, ecx
and edx, edi
lea eax, [eax + edx*2]
xor edx, edx
div ebx
not edx
movzx eax, byte [ebx + edx + 0x9bb120]
xor al, byte [esi + 0x10]
xor al, 0xc8
add byte [ecx + 0xa46410], al
inc ecx
cmp dword [esi + 0x30], ecx
jne 0x8b84e0
nop
movzx eax, byte [esi + 0x14]
xchg byte [0xa4641d], al
mov dword [esi + 0x178], 0xffffffff
nop
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
mov ebx, dword [esi + 0x2c]
sub ecx, ebx
add ecx, eax
mov dword [esi + 0x178], 0xffffffff
call dword [0xa0535c]
push dword [esi + 0x20]
push 0xa46410
push dword [esi + 0x38]
call ecx
add esp, 0xc
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x48]
mov byte [eax + ecx], 0
lea edi, [esi + 0xa0]
nop
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
sub ecx, ebx
add ecx, eax
mov dword [esi + 0x178], 0xffffffff
call dword [0xa0535c]
lea eax, [esi + 0x118]
push dword [esi + 0x1c]
push edi
push eax
call ecx
add esp, 0xc
mov dword [edi + 0x10], 0
mov ecx, dword [esi + 0x24]
mov dword [edi + 0x14], ecx
mov byte [edi], 0
mov eax, dword [esi + 0xb4]
cmp eax, ecx
jbe 0x8b860c
nop
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0x91e11086
lea edx, [eax + ecx]
mov edi, edx
xor edi, 1
sub edi, ecx
and edx, 1
lea edx, [edi + edx*2]
mov ecx, ebx
xor ecx, 0x8bedd627
cmp edx, ecx
mov ecx, dword [esi + 0xa0]
jbe 0x8b8601
nop
mov edi, dword [ecx - 4]
add ecx, dword [esi + 0x44]
sub ecx, edi
mov edx, ebx
xor edx, 0x8bedd9f8
cmp ecx, edx
jae 0x8b9b75
mov ecx, ebx
xor ecx, 0x8bedd9fc
add eax, ecx
mov edx, eax
mov ecx, edi
nop
push edx
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov dword [esi + 0xb0], 0
mov ecx, dword [esi + 0x24]
mov dword [esi + 0xb4], ecx
mov byte [esi + 0xa0], 0
mov eax, dword [esi + 0x64]
cmp eax, ecx
jbe 0x8b8675
lea edx, [eax + 1]
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0x8bedd627
cmp edx, ecx
mov ecx, dword [esi + 0x50]
jbe 0x8b866a
nop
mov edi, dword [ecx - 4]
add ecx, dword [esi + 0x44]
sub ecx, edi
mov edx, ebx
xor edx, 0x8bedd9f8
cmp ecx, edx
jae 0x8b9b85
mov ecx, ebx
xor ecx, 0x8bedd9fc
add eax, ecx
mov edx, eax
mov ecx, edi
nop
push edx
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x10]
mov eax, edx
and eax, dword [esi + 0x44]
cmp eax, dword [esi + 0x28]
je 0x8b9b65
nop
mov eax, dword [ecx]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x74]
mov dword [esi + 0x30], edx
add eax, edx
cmp eax, dword [esi + 0x24]
nop
mov dword [esi + 0x14], eax
jbe 0x8b86e5
test eax, eax
js 0x8b86f5
nop
or eax, dword [esi + 0x24]
cmp eax, 0x17
mov edx, 0x16
cmovae edx, eax
mov ecx, dword [esi + 0x10]
xor ecx, 0x8bedd626
cmp eax, ecx
mov dword [esi + 0x38], edx
lea eax, [edx + 1]
ja 0x8b8701
nop
mov dword [esi + 0x178], 0xb
push eax
call fcn.008ea17d
add esp, 4
mov edx, eax
jmp 0x8b8747
mov eax, 0xf
lea ecx, [esi + 0xe8]
mov dword [esi + 0x28], ecx
jmp 0x8b8755
mov dword [esi + 0x38], 0x7fffffff
mov eax, 0x80000000
nop
mov ecx, dword [esi + 0x10]
xor ecx, 0x8bedd9fb
mov dword [esi + 0x28], ecx
add eax, ecx
mov dword [esi + 0x178], 0xb
push eax
call fcn.008ea17d
add esp, 4
nop
mov edi, dword [esi + 0x28]
add edi, eax
mov ecx, dword [esi + 0x10]
mov edx, ecx
xor edx, edi
not edi
xor ecx, 0x8bedd9c7
and ecx, edi
xor edx, 0x74122638
or edx, ecx
not edx
mov dword [edx - 4], eax
nop
mov dword [esi + 0x28], edx
mov dword [esi + 0xe8], edx
nop
mov eax, dword [esi + 0x38]
nop
mov ecx, dword [esi + 0x24]
cmp dword [esi + 0x20], ecx
mov ebx, dword [esi + 0xc]
cmova ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0xf8], ecx
mov dword [esi + 0xfc], eax
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
sub ecx, dword [esi + 0x2c]
add ecx, eax
mov dword [esi + 0x178], 0xffffffff
call dword [0xa0535c]
mov edi, dword [esi + 0x30]
push edi
push ebx
mov ebx, dword [esi + 0x28]
push ebx
call ecx
add esp, 0xc
mov eax, dword [esi + 0x3c]
mov dword [ebx + edi], eax
mov eax, dword [esi + 0x14]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0x34]
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 0x24]
cmp dword [eax + 0x14], ecx
jbe 0x8b87c0
mov eax, dword [eax]
mov dword [esi + 0x34], eax
mov ebx, dword [esi + 0xf8]
mov eax, dword [esi + 0xfc]
mov ecx, eax
sub ecx, ebx
cmp ecx, edx
jae 0x8b880a
nop
mov dword [esi + 0x178], 0xc
sub esp, 0x10
movzx eax, byte [esi + 0x50]
mov byte [esp + 4], al
mov dword [esp + 0xc], edx
mov eax, dword [esi + 0x34]
mov dword [esp + 8], eax
mov dword [esp], edx
lea ecx, [esi + 0xe8]
call fcn.0066d8c0
mov edi, eax
mov edx, dword [esi + 0x2c]
jmp 0x8b8862
nop
mov dword [esi + 0xc], edx
add edx, ebx
mov ecx, edx
mov dword [esi + 0x14], edx
mov dword [esi + 0xf8], edx
lea edi, [esi + 0xe8]
mov edx, edi
cmp eax, dword [esi + 0x24]
jbe 0x8b882e
mov edx, dword [esi + 0xe8]
mov dword [esi + 0x30], edx
mov eax, dword [0xa465e4]
mov ecx, dword [0xa465c8]
sub ecx, dword [esi + 0x2c]
add ecx, eax
add ebx, edx
call dword [0xa0535c]
push dword [esi + 0xc]
push dword [esi + 0x34]
push ebx
call ecx
mov edx, dword [esi + 0x2c]
add esp, 0xc
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
mov byte [ecx + eax], 0
nop
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
sub ecx, edx
add ecx, eax
mov dword [esi + 0x178], 0xffffffff
call dword [0xa0535c]
lea ebx, [esi + 0x50]
push dword [esi + 0x1c]
push edi
push ebx
call ecx
add esp, 0xc
mov dword [edi + 0x10], 0
mov edx, dword [esi + 0x24]
mov dword [edi + 0x14], edx
mov byte [edi], 0
mov edi, dword [esi + 0x60]
mov eax, dword [esi + 0x64]
mov ecx, eax
sub ecx, edi
cmp ecx, edx
jae 0x8b88f5
nop
movzx eax, byte [0xa46430]
mov ecx, dword [esi + 0x10]
mov ch, cl
xor ch, 0x24
cmp al, ch
je 0x8b89d3
mov eax, dword [esi + 0x10]
mov cl, al
xor cl, 0x7c
mov edx, eax
xor dl, 0xf9
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa46430], dl
je 0x8b895a
cmp al, ch
jne 0x8b88e0
jmp 0x8b89d3
lea ecx, [edi + edx]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x60], ecx
cmp eax, edx
jbe 0x8b8908
mov ebx, dword [esi + 0x50]
mov dword [esi + 0x30], ebx
add edi, ebx
mov dword [esi + 0x18], edi
movzx eax, byte [0xa46430]
mov ecx, dword [esi + 0x10]
xor cl, 0x24
mov byte [esi + 0xc], cl
cmp al, cl
je 0x8b8a7f
mov eax, dword [esi + 0x10]
mov ecx, eax
xor cl, 0x7c
mov edx, eax
xor dl, 0xf9
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa46430], dl
je 0x8b8a13
cmp al, byte [esi + 0xc]
jne 0x8b8940
jmp 0x8b8a7f
mov eax, dword [esi + 0x10]
mov edx, eax
xor edx, 0xdaa6353a
mov dword [esi + 0xc], edx
mov ebx, eax
xor ebx, 0x8bedd9c8
mov cl, al
xor cl, 0xe6
xor edi, edi
nop word [eax + eax]
nop
mov eax, dword [esi + 0xc]
add eax, edi
xor edx, edx
div ebx
not edx
movzx eax, byte [ebx + edx + 0x9bb130]
mov edx, eax
not dl
and dl, cl
xor al, byte [esi + 0x10]
xor al, 0xe6
or al, dl
xor byte [edi + 0xa46420], al
mov eax, edi
not eax
xor edi, 1
and eax, 0x7ffffffe
or eax, edi
add eax, eax
neg eax
add edi, eax
add edi, 0xfffffffe
cmp edi, ebx
jl 0x8b8980
nop
xchg byte [0xa46430], ch
mov dword [esi + 0x178], 0xd
nop
mov dword [esi + 0x178], 0xd
sub esp, 0x10
movzx eax, byte [esi + 0x9c]
mov byte [esp + 4], al
mov eax, dword [esi + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0xa46420
lea ecx, [esi + 0x50]
call fcn.0066d8c0
mov edi, eax
mov ebx, dword [esi + 0x24]
mov edx, dword [esi + 0x2c]
jmp 0x8b8ac2
nop
mov edi, dword [esi + 0x10]
mov eax, edi
xor eax, 0xdaa6353a
mov dword [esi + 0x14], eax
xor edi, 0x8bedd9c8
cmp edi, 2
mov ecx, 1
cmovge ecx, edi
xor ebx, ebx
nop word cs:[eax + eax]
nop
mov eax, dword [esi + 0x14]
add eax, ebx
xor edx, edx
div edi
not edx
movzx eax, byte [ebx + 0xa46420]
xor al, byte [edi + edx + 0x9bb130]
xor al, byte [esi + 0x10]
xor al, 0xe6
mov byte [ebx + 0xa46420], al
inc ebx
cmp ecx, ebx
jne 0x8b8a40
nop
movzx eax, byte [esi + 0xc]
xchg byte [0xa46430], al
mov dword [esi + 0x178], 0xffffffff
nop
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
mov edi, dword [esi + 0x2c]
sub ecx, edi
add ecx, eax
mov dword [esi + 0x178], 0xffffffff
call dword [0xa0535c]
mov ebx, dword [esi + 0x24]
push ebx
push 0xa46420
push dword [esi + 0x18]
call ecx
mov edx, edi
add esp, 0xc
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov byte [eax + ecx], 0
lea edi, [esi + 0x50]
nop
mov eax, dword [0xa465f0]
mov ecx, dword [0xa465cc]
sub ecx, edx
add ecx, eax
mov dword [esi + 0x178], 0xffffffff
call dword [0xa0535c]
lea eax, [esi + 0xa0]
push dword [esi + 0x1c]
push edi
push eax
call ecx
add esp, 0xc
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], ebx
mov byte [edi], 0
mov eax, dword [esi + 0x64]
cmp eax, ebx
jbe 0x8b8b66
mov ecx, eax
xor ecx, 1
mov edx, eax
and edx, 1
lea edi, [ecx + edx*2]
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0x8bedd627
cmp edi, ecx
mov ecx, dword [esi + 0x50]
jbe 0x8b8b5b
nop
mov edx, dword [ecx - 4]
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x44]
mov edi, edx
xor edi, ecx
and ecx, edx
mov edx, dword [esi + 0xc]
lea ecx, [edi + ecx*2]
sub ecx, edx
mov edi, ebx
xor edi, 0x8bedd9f8
cmp ecx, edi
jae 0x8b9b95
mov ecx, ebx
xor ecx, 0x8bedd9fc
add eax, ecx
mov edi, eax
mov ecx, edx
nop
push edi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov dword [esi + 0x60], 0
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x64], ecx
mov byte [esi + 0x50], 0
mov eax, dword [esi + 0xfc]
cmp eax, ecx
jbe 0x8b8bf4
nop
mov ecx, dword [0xa570d4]
lea edi, [eax + ecx]
inc edi
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0x8bedd627
cmp edi, ecx
mov edx, dword [esi + 0xe8]
jbe 0x8b8be9
nop
mov ecx, dword [edx - 4]
mov dword [esi + 0xc], ecx
add edx, dword [esi + 0x44]
neg edx
mov edi, ebx
xor edi, 0x1559fba0
inc edi
mov ecx, ebx
mov ebx, edi
xor ebx, edx
and edx, edi
lea edx, [ebx + edx*2]
mov ebx, ecx
mov ecx, dword [esi + 0xc]
add edx, ecx
sub edi, edx
mov edx, ebx
xor edx, 0x8bedd9f8
cmp edi, edx
jae 0x8b9ba5
mov edx, ebx
xor edx, 0x8bedd9fc
add eax, edx
mov edi, eax
mov edx, ecx
nop
push edi
push edx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [0xa4662c]
mov ebx, dword [esi + 0x10]
xor eax, ebx
cmp eax, 0x8b2dda50
mov eax, dword [0xa46624]
jne 0x8b8c22
nop
mov ecx, dword [eax]
mov edx, ecx
xor edx, eax
and ecx, eax
lea eax, [edx + ecx*2]
mov dword [esi + 0xbc], eax
jmp 0x8b8cd7
nop
mov ecx, dword [esi + 0x44]
mov edx, dword [eax + ecx*4]
mov dword [esi + 0xc], edx
mov ecx, eax
shl edx, cl
xor ecx, ecx
test al, 0x20
cmovne edx, ecx
mov edi, dword [esi + 0xc]
mov ecx, edx
shl edi, cl
test dl, 0x20
mov ecx, 0
cmovne edi, ecx
mov ecx, edi
mov edx, dword [esi + 0xc]
sub ecx, edx
xor ecx, edi
sub edx, eax
imul edx, eax
and edx, eax
mov dword [esi + 0xc], edx
mov eax, ebx
shl eax, 0x1f
xor eax, ebx
xor eax, 0xe947ff79
mov edx, ebx
shl edx, 0x1d
xor edx, ebx
xor edx, 0x16b80086
add edx, eax
mov edi, ebx
shl edi, 0x1e
xor edi, ebx
xor edi, 0x313ca24c
mov eax, ebx
xor eax, 0xcec35db3
add eax, edi
add eax, edx
mov edx, dword [esi + 0xc]
sub eax, edx
add eax, 4
imul eax, edx
mov edx, 2
sub edx, eax
imul edx, eax
lea eax, [edx - 2]
imul eax, edx
lea edx, [eax + eax]
neg edx
lea eax, [ecx + eax*2]
imul eax, edx
mov edx, ecx
sub edx, eax
imul edx, eax
sub edx, ecx
mov eax, edx
xor eax, ecx
and edx, ecx
lea eax, [eax + edx*2]
mov dword [esi + 0xbc], eax
mov dword [0xa46640], 0xa07e7c4c
nop
mov eax, dword [0x9baff8]
mov dword [esi + 0x70], eax
mov eax, dword [0xa46628]
add eax, dword [eax]
mov dword [esi + 0x7c], eax
mov ecx, ebx
shr ecx, 3
mov edx, ebx
shl edx, 0x1d
xor edx, ebx
mov eax, edx
xor eax, 0xb07713d8
mov dword [esi + 0xdc], eax
mov eax, ecx
xor eax, 0x117dbb3b
mov dword [esi + 0xd0], eax
mov eax, ebx
shl eax, 4
mov edi, ebx
xor edi, 0xb07713d8
mov dword [esi + 0x68], edi
mov edi, eax
xor edi, 0xbedd9d80
mov dword [esi + 0xd8], edi
mov edi, ebx
xor edi, 0xf4122627
mov dword [esi + 0x114], edi
mov edi, ebx
xor edi, 0x741d6467
mov dword [esi + 0x84], edi
mov edi, ebx
xor edi, 0x8be29b98
mov dword [esi + 0xd4], edi
mov edi, ebx
xor edi, 0x74122627
mov dword [esi + 0x80], edi
xor eax, 0xc122627f
mov dword [esi + 0xcc], eax
mov eax, ebx
xor al, 0xb1
mov byte [esi + 0x14], al
mov eax, ebx
xor al, 0x56
mov byte [esi + 0x34], al
mov eax, ebx
xor al, 7
mov byte [esi + 0x30], al
mov eax, ebx
xor eax, 0x579f7db3
mov dword [esi + 0xc], eax
mov eax, ebx
xor al, 0xed
mov byte [esi + 0x43], al
mov eax, ebx
xor eax, 0x8bedd9db
mov dword [esi + 0xb8], eax
lea eax, [ebx + ebx]
mov dword [esi + 0x4c], eax
xor eax, 0x17dbb3b0
mov dword [esi + 0x110], eax
mov eax, ebx
lea ebx, [ebx*4]
mov edi, ebx
xor edi, 0x17eebb41
mov dword [esi + 0x1c], edi
mov edi, eax
xor edi, 0xb6c2e1ac
mov dword [esi + 0x18], edi
mov edi, eax
xor edi, 0x16d39ab7
mov dword [esi + 0x20], edi
xor eax, 0xb580fa42
mov dword [esi + 0x28], eax
mov edi, dword [esi + 0x4c]
xor edi, 0xd07d906e
mov eax, dword [esi + 0x10]
xor eax, 0x493d1e53
mov dword [esi + 0xc4], edx
xor edx, 0xe7b807c4
xor ecx, 0x951fdac9
add edx, eax
adc ecx, edi
add edx, dword [esi + 0x28]
adc ecx, dword [esi + 0x20]
add edx, dword [esi + 0x18]
adc ecx, dword [esi + 0x1c]
mov dword [esi + 0x1c], ecx
xor ebx, 0x4d76dbf0
mov edi, dword [esi + 0x10]
mov eax, edi
xor eax, 0x4a7f05bd
mov ecx, dword [esi + 0x4c]
xor ecx, 0x6c462dbd
mov dword [esi + 0x18], ecx
mov ecx, edi
xor ecx, 0x1847f83b
add eax, edx
adc ebx, dword [esi + 0x1c]
add eax, ecx
adc ebx, dword [esi + 0x18]
add eax, 3
mov dword [esi + 0x108], eax
adc ebx, 0
mov dword [esi + 0x10c], ebx
lea eax, [edi*8]
mov dword [esi + 0xc0], eax
xor eax, 0x5f6ecec0
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0x4c]
xor eax, 0x68244c4f
mov dword [esi + 0x104], eax
mov eax, edi
xor eax, 0x8bedd9d8
mov dword [esi + 0x100], eax
mov eax, dword [esi + 0xb8]
cmp eax, 2
mov ecx, 1
cmovge ecx, eax
movzx eax, byte [esi + 0x43]
movd xmm0, eax
mov dword [esi + 0x78], ecx
and ecx, 0x7ffffff0
mov dword [esi + 0xe4], ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esi + 0x150], xmm0
movd xmm0, edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [esi + 0x140], xmm0
nop dword [eax + eax]
nop
mov dword [esi + 0x178], 0xe
lea ecx, [esi + 0xa0]
call fcn.008ba050
test al, al
je 0x8b8f70
lea eax, [esi + 0xa0]
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0x24]
cmp dword [esi + 0xb4], eax
jbe 0x8b8f2d
mov eax, dword [esi + 0xa0]
mov dword [esi + 0xe0], eax
mov dword [esi + 0x50], 0
movzx eax, byte [0xa464a3]
cmp al, byte [esi + 0x14]
je 0x8b93b7
nop word cs:[eax + eax]
movzx eax, byte [esi + 0x34]
movzx ecx, byte [esi + 0x30]
lock cmpxchg byte [0xa464a3], cl
je 0x8b9062
cmp al, byte [esi + 0x14]
jne 0x8b8f50
jmp 0x8b93b7
cmp byte [ebp + 0xc], 0
jne 0x8b968c
nop
mov dword [esi + 0x178], 4
call fcn.008ef61f
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], edx
call fcn.008ef608
nop
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edx
push eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
call fcn.008ea7c0
mov edi, eax
mov ecx, edx
mov ebx, eax
imul ebx, dword [esi + 0xd0]
mul dword [esi + 0xdc]
mov dword [esi + 0x20], eax
add edx, ebx
mov eax, ecx
imul eax, dword [esi + 0xdc]
add eax, edx
mov dword [esi + 0x28], eax
mov ebx, dword [esi + 0x18]
imul ebx, edi
mov eax, edi
mov edi, dword [esi + 0x1c]
mul edi
add edx, ebx
imul ecx, edi
add ecx, edx
mov edx, dword [esi + 0x38]
sub edx, eax
mov edi, dword [esi + 0x3c]
sbb edi, ecx
mov ecx, edx
mov eax, edx
imul ecx, dword [esi + 0xd8]
mov ebx, dword [esi + 0x68]
mul ebx
add edx, ecx
imul edi, ebx
add edi, edx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
push eax
call fcn.008ea7c0
add eax, dword [esi + 0x20]
adc edx, dword [esi + 0x28]
mov ecx, eax
add ecx, dword [esi + 0xd4]
mov edi, edx
adc edi, dword [esi + 0xd8]
cmp eax, dword [esi + 0x84]
sbb edx, dword [esi + 0x114]
cmovge edi, dword [esi + 0xcc]
mov dword [esi + 0x54], edi
cmovge ecx, dword [esi + 0x80]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x178], 0xe
lea eax, [esi + 0x50]
push eax
call fcn.007493d0
add esp, 4
jmp 0x8b8ef0
xor ecx, ecx
cmp dword [esi + 0xb8], 0x10
mov edi, dword [esi + 0x74]
mov dh, byte [esi + 0x43]
jl 0x8b9360
xor ecx, ecx
nop dword [eax]
nop
mov eax, dword [esi + 0xc]
add eax, ecx
mov edx, dword [esi + 0xc]
lea ebx, [edx + ecx + 1]
mov edx, dword [esi + 0xc]
lea edx, [edx + ecx + 2]
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0xc]
add edx, ecx
add edx, 3
mov dword [esi + 0x28], edx
xor edx, edx
div edi
mov dword [esi + 0x1c], edx
mov eax, ebx
xor edx, edx
div edi
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x20]
xor edx, edx
div edi
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x28]
xor edx, edx
div edi
mov dword [esi + 0x28], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 4
xor edx, edx
div edi
mov dword [esi + 0x3c], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 5
xor edx, edx
div edi
mov dword [esi + 0x38], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 6
xor edx, edx
div edi
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 7
xor edx, edx
div edi
mov dword [esi + 0x6c], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 8
xor edx, edx
div edi
mov dword [esi + 0x98], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 9
xor edx, edx
div edi
mov dword [esi + 0x94], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 0xa
xor edx, edx
div edi
mov dword [esi + 0x90], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 0xb
xor edx, edx
div edi
mov dword [esi + 0x130], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 0xc
xor edx, edx
div edi
mov dword [esi + 0x8c], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 0xd
xor edx, edx
div edi
mov dword [esi + 0x88], edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 0xe
xor edx, edx
div edi
mov ebx, edx
mov eax, dword [esi + 0xc]
add eax, ecx
add eax, 0xf
xor edx, edx
div edi
not edx
movzx eax, byte [edi + edx + 0x9bb180]
movd xmm6, eax
not ebx
movzx eax, byte [edi + ebx + 0x9bb180]
movd xmm2, eax
mov eax, dword [esi + 0x88]
not eax
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm4, eax
mov eax, dword [esi + 0x8c]
not eax
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm1, eax
mov eax, dword [esi + 0x130]
not eax
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm0, eax
movdqa xmmword [esi + 0x130], xmm0
mov eax, dword [esi + 0x90]
not eax
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm3, eax
mov eax, dword [esi + 0x94]
not eax
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm7, eax
mov eax, dword [esi + 0x98]
not eax
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm0, eax
mov eax, dword [esi + 0x6c]
not eax
punpcklbw xmm2, xmm6
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm6, eax
mov eax, dword [esi + 0x48]
not eax
punpcklbw xmm1, xmm4
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm4, eax
mov eax, dword [esi + 0x38]
not eax
punpcklwd xmm1, xmm2
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm5, eax
mov eax, dword [esi + 0x3c]
not eax
punpcklbw xmm3, xmmword [esi + 0x130]
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm2, eax
punpcklbw xmm0, xmm7
punpcklwd xmm0, xmm3
punpckldq xmm0, xmm1
mov eax, dword [esi + 0x28]
not eax
punpcklbw xmm4, xmm6
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm1, eax
mov eax, dword [esi + 0x20]
not eax
punpcklbw xmm2, xmm5
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm3, eax
mov eax, dword [esi + 0x18]
not eax
punpcklwd xmm2, xmm4
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm4, eax
mov eax, dword [esi + 0x1c]
not eax
punpcklbw xmm3, xmm1
movzx eax, byte [edi + eax + 0x9bb180]
movd xmm1, eax
punpcklbw xmm1, xmm4
punpcklwd xmm1, xmm3
punpckldq xmm1, xmm2
movdqa xmm2, xmmword [ecx + 0xa464a0]
punpcklqdq xmm1, xmm0
movdqa xmm0, xmm1
pandn xmm0, xmmword [esi + 0x150]
pxor xmm1, xmmword [esi + 0x140]
pxor xmm1, xmmword [0x9bafe0]
por xmm1, xmm0
movdqa xmm0, xmm1
pxor xmm0, xmm2
pand xmm1, xmm2
paddb xmm1, xmm1
paddb xmm1, xmm0
movdqa xmmword [ecx + 0xa464a0], xmm1
add ecx, 0x10
cmp dword [esi + 0xe4], ecx
jne 0x8b9080
mov eax, dword [esi + 0xe4]
mov ecx, eax
mov ebx, dword [esi + 0x78]
cmp ebx, eax
mov dh, byte [esi + 0x43]
je 0x8b93a2
nop word cs:[eax + eax]
nop
mov eax, dword [esi + 0xc]
add eax, ecx
mov bl, dh
xor edx, edx
div edi
not edx
mov ah, byte [ecx + 0xa464a0]
mov al, byte [edi + edx + 0x9bb180]
mov dh, bl
mov ebx, dword [esi + 0x78]
mov dl, al
not dl
and dl, dh
xor al, byte [esi + 0x10]
xor al, 0xed
or al, dl
mov dl, al
xor dl, ah
and al, ah
add al, al
add al, dl
mov byte [ecx + 0xa464a0], al
inc ecx
cmp ebx, ecx
jne 0x8b9360
nop
movzx eax, byte [esi + 0x14]
xchg byte [0xa464a3], al
mov dword [esi + 0x178], 0xe
nop
mov dword [esi + 0x178], 0xe
push 0xa464a0
push dword [esi + 0xe0]
lea eax, [esi + 0x50]
push eax
call fcn.008d291e
add esp, 0xc
xor ecx, ecx
test eax, eax
jne 0x8b93e2
mov ecx, dword [esi + 0x50]
mov dword [esi + 0x1c], ecx
test ecx, ecx
jne 0x8b94ef
nop
cmp byte [ebp + 0xc], 0
jne 0x8b94ef
nop
mov dword [esi + 0x178], 5
call fcn.008ef61f
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], edx
call fcn.008ef608
mov edi, edx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edx
push eax
mov dword [esi + 0x38], eax
call fcn.008ea7c0
mov ebx, eax
mov dword [esi + 0x28], edx
mul dword [esi + 0x68]
mov dword [esi + 0x3c], eax
mov eax, ebx
imul eax, dword [esi + 0x110]
add edx, eax
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x18]
imul eax, ebx
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x28]
imul eax, dword [esi + 0x68]
mov dword [esi + 0x20], eax
mov eax, ebx
mov ebx, dword [esi + 0x1c]
mul ebx
mov ecx, dword [esi + 0x48]
add dword [esi + 0x20], ecx
add edx, dword [esi + 0x6c]
mov ecx, dword [esi + 0x28]
imul ecx, ebx
add ecx, edx
mov edx, dword [esi + 0x38]
add edx, dword [esi + 0x108]
adc edi, dword [esi + 0x10c]
sub edx, eax
sbb edi, ecx
mov ecx, edx
mov eax, edx
imul ecx, dword [esi + 0xc8]
mov ebx, dword [esi + 0x68]
mul ebx
add edx, ecx
imul edi, ebx
add edi, edx
push dword [esi + 0x18]
push dword [esi + 0x1c]
push edi
push eax
call fcn.008ea7c0
add eax, dword [esi + 0x3c]
adc edx, dword [esi + 0x20]
mov ecx, eax
add ecx, dword [esi + 0xd4]
mov edi, edx
adc edi, dword [esi + 0x100]
cmp eax, dword [esi + 0x84]
mov eax, dword [esi + 0x104]
sbb edx, eax
cmovge edi, eax
mov dword [esi + 0x54], edi
cmovge ecx, dword [esi + 0x80]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x178], 0xe
lea eax, [esi + 0x50]
push eax
call fcn.007493d0
add esp, 4
jmp 0x8b8ef0
cmp dword [esi + 0x1c], 0
je 0x8b968c
mov eax, dword [esi + 0x10]
mov ecx, eax
xor ecx, 0x8bedd998
mov dword [esi + 0x38], ecx
mov ecx, eax
shr ecx, 5
mov edx, eax
shl edx, 0x1b
xor edx, eax
xor edx, 0x707713d8
mov dword [esi + 0x34], edx
xor ecx, 0x45f6ece
mov dword [esi + 0x3c], ecx
xor dword [esi + 0xc4], 0x8be29b98
xor dword [esi + 0xc0], 0x2091313f
nop dword [eax]
nop
mov dword [esi + 0x178], 0xf
cmp byte [ebp + 8], 0
je 0x8b9590
lea eax, [esi + 0x118]
mov ecx, dword [esi + 0x24]
cmp dword [esi + 0x12c], ecx
jbe 0x8b9568
mov eax, dword [esi + 0x118]
push dword [esi + 0x38]
push 0x9bb010
push eax
call fcn.008d28c1
add esp, 0xc
test eax, eax
jne 0x8b9697
cmp byte [ebp + 0xc], 0
je 0x8b95ad
jmp 0x8b9697
lea ecx, [esi + 0x118]
call fcn.008ba050
test al, al
jne 0x8b96a9
cmp byte [ebp + 0xc], 0
jne 0x8b9695
nop
mov dword [esi + 0x178], 8
call fcn.008ef61f
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], edx
call fcn.008ef608
nop
push dword [esi + 0x14]
push dword [esi + 0xc]
push edx
push eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x20], edx
call fcn.008ea7c0
mov edi, eax
mov ecx, edx
mov ebx, eax
imul ebx, dword [esi + 0x3c]
mul dword [esi + 0x34]
mov dword [esi + 0x30], eax
add edx, ebx
mov eax, ecx
imul eax, dword [esi + 0x34]
add eax, edx
mov dword [esi + 0x18], eax
mov ebx, dword [esi + 0x14]
imul ebx, edi
mov eax, edi
mov edi, dword [esi + 0xc]
mul edi
add edx, ebx
imul ecx, edi
add ecx, edx
mov edx, dword [esi + 0x28]
sub edx, eax
mov edi, dword [esi + 0x20]
sbb edi, ecx
mov ecx, edx
mov eax, edx
imul ecx, dword [esi + 0xc8]
mov ebx, dword [esi + 0x68]
mul ebx
add edx, ecx
imul edi, ebx
add edi, edx
push dword [esi + 0x14]
push dword [esi + 0xc]
push edi
push eax
call fcn.008ea7c0
add eax, dword [esi + 0x30]
adc edx, dword [esi + 0x18]
mov ecx, eax
add ecx, dword [esi + 0xc4]
mov edi, edx
adc edi, dword [esi + 0xd0]
cmp eax, dword [esi + 0x84]
sbb edx, dword [esi + 0xcc]
cmovge edi, dword [esi + 0xc0]
mov dword [esi + 0x54], edi
cmovge ecx, dword [esi + 0x80]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x178], 0xf
lea eax, [esi + 0x50]
push eax
call fcn.007493d0
add esp, 4
jmp 0x8b9540
mov dword [esi + 0x1c], 0
jmp 0x8b96a9
xor eax, eax
nop
push dword [esi + 0x1c]
mov edi, eax
call fcn.008d10d1
add esp, 4
nop
mov dword [esi + 0x1c], edi
nop
mov eax, dword [esi + 0xb4]
mov dword [esi + 0x38], eax
mov edx, dword [0xa46620]
mov eax, edx
xor eax, 1
mov ecx, edx
and ecx, 1
lea eax, [eax + ecx*2]
mov dword [0xa46620], eax
mov dword [esi + 0x88], eax
mov dword [esi + 0x78], edx
test eax, edx
je 0x8b97f3
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x38]
cmp eax, dword [esi + 0x24]
jbe 0x8b973f
lea edx, [eax + 1]
mov edi, dword [esi + 0x10]
mov eax, edi
xor eax, 0x8bedd627
cmp edx, eax
mov eax, dword [esi + 0xa0]
jbe 0x8b9734
nop
mov ecx, dword [eax - 4]
add eax, dword [esi + 0x44]
neg eax
mov edx, ecx
xor edx, eax
and eax, ecx
lea eax, [edx + eax*2]
neg eax
mov edx, edi
xor edx, 0x8bedd9f8
cmp eax, edx
jae 0x8b9bb5
mov eax, edi
xor eax, 0x8bedd9fc
mov edx, dword [esi + 0x38]
add edx, eax
mov eax, ecx
nop
push edx
push eax
call fcn.008ea1ad
add esp, 8
nop
mov edx, dword [esi + 0x12c]
movzx eax, byte [0xa56de8]
test al, al
jne 0x8b975b
nop
cmp edx, dword [esi + 0x24]
jbe 0x8b9b34
nop
mov edi, dword [esi + 0x10]
mov ecx, edi
xor ecx, 0x17f65459
mov dword [esi + 0xc], edx
sub edx, ecx
inc edx
mov ebx, edx
xor ebx, ecx
and edx, ecx
lea ecx, [ebx + edx*2]
xor edi, 0x8bedd627
cmp ecx, edi
mov ebx, dword [esi + 0x118]
mov dword [0xa46638], 0x8bedd9d8
jbe 0x8b9b29
nop
mov ecx, dword [0xa4663c]
xor ecx, dword [esi + 0x10]
cmp ecx, 0x91dcb66
movzx ecx, byte [0x9baff4]
mov byte [esi + 0x34], cl
jne 0x8b9aca
nop
mov ecx, dword [esi + 0x10]
mov eax, ecx
xor al, 0x71
mov ch, cl
xor ch, 0x8e
add ch, al
mov cl, byte [esi + 0x34]
mov edx, dword [esi + 0x14]
mov eax, edx
sub al, cl
mul dl
mov edx, eax
add dl, cl
mov eax, edx
sub al, ch
mul ch
mov ah, dl
mov ecx, eax
shl ah, cl
mov dword [0xa4662c], 0x8edc269d
test ah, dl
setne al
jmp 0x8b9af6
nop
mov eax, dword [0xa46630]
xor eax, dword [esi + 0x10]
cmp eax, 0xab4c6753
jne 0x8b9823
nop
mov ecx, dword [esi + 0x7c]
lea eax, [ecx + 4]
mov dword [0xa4663c], 0x1e955ae5
add eax, dword [ecx + 4]
cmp dword [esi + 0x70], 0
jns 0x8b96dc
jmp 0x8b9835
nop
mov ecx, dword [esi + 0x7c]
mov eax, dword [ecx]
add eax, ecx
cmp dword [esi + 0x70], 0
jle 0x8b96dc
nop
mov ecx, dword [esi + 0x10]
mov edx, ecx
shr edx, 2
mov edi, ecx
shl edi, 0x1e
xor edi, ecx
xor edi, 0xd494d54
xor edx, 0x952080bb
mov ecx, dword [esi + 0x4c]
xor ecx, 0x5fffba82
mov ebx, dword [esi + 0x10]
xor ebx, 0xf2b6b2ab
mov dword [esi + 0x34], 0
add ebx, edi
adc ecx, edx
add ebx, 1
mov dword [esi + 0x30], ebx
adc ecx, 0
mov dword [esi + 0x4c], ecx
mov ebx, dword [esi + 0x10]
mov ecx, ebx
xor ecx, 0xec6a428f
mov edx, ebx
xor edx, 0x1395bd70
add ecx, dword [esi + 0x74]
add ecx, edx
mov dword [esi + 0x48], ecx
mov edx, ebx
xor edx, 0xafd7be9d
mov edi, ebx
xor edi, 0x50284162
lea ecx, [edi + edx]
inc ecx
mov dword [esi + 0x6c], ecx
xor edi, edi
mov edx, ebx
xor dl, 0xf8
mov ecx, ebx
xor cl, 7
add cl, dl
mov byte [esi + 0x98], cl
mov ecx, ebx
xor cl, 5
mov edx, ebx
xor dl, 4
mov byte [esi + 0x94], cl
add cl, cl
and cl, 2
add cl, dl
mov byte [esi + 0x90], cl
mov edx, ebx
xor dl, 0x3b
mov dh, bl
xor dh, 0xc4
add dh, dl
mov dl, bl
xor dl, 0x75
mov ecx, ebx
xor cl, 0x8a
add cl, dl
add cl, dh
mov edx, dword [0xa46638]
xor edx, ebx
mov dword [esi + 0x18], edx
mov edx, dword [0xa46634]
xor edx, ebx
mov dword [esi + 0x28], edx
mov edx, ebx
xor dl, 0xdb
mov byte [esi + 0x3c], dl
mov edx, ebx
xor dl, 0x7b
mov byte [esi + 0x8c], dl
add cl, 5
mov byte [esi + 0x130], cl
nop
mov dword [esi + 0x14], 0
mov dword [esi + 0x20], 0
jmp 0x8b9952
inc edi
mov ecx, dword [esi + 0x14]
xor cl, dl
mov dword [esi + 0x14], ecx
cmp edi, dword [esi + 0x70]
jge 0x8b96e3
nop
mov dword [esi + 0xc], edi
mov ebx, dword [esi + 0x30]
add ebx, eax
mov edx, dword [esi + 0x4c]
adc edx, dword [esi + 0x34]
mov ecx, dword [esi + 0xbc]
mov edi, dword [esi + 0xc]
add edi, ecx
sub ebx, edi
mov edi, dword [esi + 0xc]
sbb edx, 0
cmp ebx, 1
sbb edx, 0
movzx edx, byte [ecx + edi]
jl 0x8b9990
cmp dword [esi + 0x18], 0x72758d2d
jne 0x8b9940
jmp 0x8b9aa8
cmp dword [esi + 0x28], 0x753cc076
jne 0x8b9a65
mov eax, ebx
movzx ecx, byte [esi + 0x3c]
sub al, cl
mul cl
mov dh, al
sub cl, al
shl dh, cl
movzx ecx, byte [esi + 0x94]
add cl, dh
movzx eax, byte [esi + 0x90]
sub al, cl
mul dh
sub dh, al
mov cl, dh
shl al, cl
movzx ecx, byte [esi + 0x8c]
shl al, cl
mov ah, cl
sub ah, al
mov al, ah
mul cl
mov dh, al
shl dh, cl
add dh, byte [esi + 0x130]
shl dh, cl
mov al, dh
sub al, cl
mul cl
mov ecx, eax
sub al, dh
mul cl
sub dh, dl
add dh, al
mov edi, ebx
mov ecx, dword [esi + 0x74]
shl edi, cl
mov eax, edx
sub al, dh
mul dh
mov ecx, ebx
sub ecx, edi
imul ecx, edi
sub ecx, ebx
sub ebx, ecx
inc ebx
imul ebx, ecx
mov ecx, 1
sub ecx, ebx
dec ebx
imul ebx, ecx
mov edi, ebx
xor edi, ecx
and ecx, ebx
add edi, ebx
mov ah, dl
neg ah
dec dl
mov dh, al
not dh
mov ebx, eax
and bl, dl
and dl, dh
and dh, ah
or dh, bl
lea ecx, [edi + ecx*2]
mov edi, dword [esi + 0xc]
mov ebx, edi
shl ebx, cl
xor ah, al
or ah, dl
not ah
add ah, ah
add ah, dh
sub ebx, edi
sub ebx, edi
mov edx, edi
mov ecx, ebx
shl edx, cl
and ah, al
sub edi, edx
mov ecx, dword [esi + 0x20]
add ecx, dword [esi + 0x6c]
mov dl, ah
mov eax, ecx
jmp 0x8b9a84
mov eax, ebx
movzx ecx, byte [esi + 0x3c]
shl al, cl
mov ah, 1
mov ecx, eax
shl ah, cl
add edi, dword [esi + 0x48]
add edi, ebx
add ah, byte [esi + 0x98]
and dl, ah
mov eax, dword [esi + 0x20]
inc eax
nop
mov ecx, dword [esi + 0x7c]
mov ebx, eax
lea eax, [ecx + eax*4]
mov dword [esi + 0x20], ebx
add eax, dword [ecx + ebx*4]
mov dword [esi + 0x34], 0
nop
cmp dword [esi + 0x18], 0x72758d2d
jne 0x8b9940
mov ecx, dword [esi + 0x14]
sub dl, cl
lea edi, [edi + edi*2]
lea edi, [edi*2 - 6]
xor cl, dl
mov dword [esi + 0x14], ecx
cmp dword [esi + 0x70], edi
jg 0x8b9952
jmp 0x8b96e3
mov edi, dword [esi + 0x88]
and edi, dword [esi + 0x78]
mov ecx, dword [esi + 0x10]
mov edx, ecx
xor dl, 0x25
mov ah, cl
xor ah, 0xda
add ah, dl
cmp edi, 1
sbb ah, 0xff
movzx ecx, byte [esi + 0x34]
sub cl, byte [esi + 0x14]
test cl, ah
setne cl
or al, cl
nop
mov byte [0xa56de8], al
mov eax, dword [ebx - 4]
mov edx, dword [esi + 0x44]
add edx, ebx
sub edx, eax
mov ecx, dword [esi + 0x10]
xor ecx, 0x8bedd9f8
cmp edx, ecx
jae 0x8b9bc5
mov ecx, dword [esi + 0x10]
xor ecx, 0x8bedd9fc
mov edx, dword [esi + 0xc]
add edx, ecx
mov ecx, edx
mov ebx, eax
nop
push ecx
push ebx
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [esi + 0x170]
mov dword fs:[0], eax
mov eax, dword [esi + 0x1c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov eax, dword [0xa465ec]
mov ecx, dword [0xa465c4]
sub ecx, dword [esi + 0x2c]
add ecx, eax
call dword [0xa0535c]
call ecx
nop
mov dword [esi + 0x178], 0xb
call fcn.0066ab60
nop
mov dword [esi + 0x178], 0
call fcn.008cd651
nop
mov dword [esi + 0x178], 1
call fcn.008cd651
nop
mov dword [esi + 0x178], 2
call fcn.008cd651
nop
mov dword [esi + 0x178], 3
call fcn.008cd651
nop
mov dword [esi + 0x178], 9
call fcn.008cd651
nop
mov dword [esi + 0x178], 0xa
call fcn.008cd651
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
call fcn.00901a00
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x17c]
mov ebp, dword [esi + 0x168]
nop
mov eax, dword [0xa465e8]
mov edi, dword [0xa465c0]
sub edi, dword [esi + 0x2c]
add edi, eax
mov ecx, edi
call dword [0xa0535c]
lea ecx, [esi + 0x50]
call edi
add esp, 0x10
pop ebp
ret