Function at 0x10086c00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x11c
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x30], eax
mov al, byte [ebp + 0x1c]
mov byte [ebp - 0x29], al
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1009a7e0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov bl, byte [ebp - 0x29]
mov ecx, dword [0x10289154]
mov eax, dword [0x10289158]
sub ecx, eax
mov eax, ecx
xor eax, 0x7bf31129
and eax, ecx
mov ecx, 0x762f286f
mul ecx
mov eax, edx
shr eax, 0x1e
or eax, 0x12a95006
push eax
mov edx, esp
push eax
mov ecx, esp
mov dword [ebp - 0x48], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x50], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x4c], ecx
push eax
mov edi, esp
mov dword [ebp - 0xb4], edi
push eax
mov ecx, esp
push eax
mov esi, esp
mov dword [ebp - 0xb0], esi
push eax
mov esi, esp
mov dword [ebp - 0xac], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0xa8], esi
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0xa4], esi
push eax
mov esi, esp
mov dword [ebp - 0xa0], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x9c], esi
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x98], esi
push eax
mov esi, esp
mov dword [ebp - 0x94], esi
push eax
mov esi, esp
mov dword [ebp - 0x90], esi
push eax
mov esi, esp
mov dword [ebp - 0x8c], esi
push eax
mov esi, esp
mov dword [ebp - 0x88], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x84], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x80], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x7c], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x78], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x74], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x70], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x6c], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x68], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x64], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x60], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x5c], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x58], esi
sub esp, 8
mov esi, esp
mov dword [ebp - 0x54], esi
mov esi, dword [ebp - 0x3c]
mov dword [edx], esi
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
mov dword [edx], esi
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x50]
mov dword [edx], esi
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x4c]
mov byte [edx], bl
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x48]
mov dword [edi], ebx
mov dword [ecx], esi
mov ecx, dword [ecx]
mov dword [ebp - 0x44], ecx
xor ecx, ecx
cmp ecx, dword [edx]
setb cl
mov byte [ebp - 0x3d], cl
cmp eax, 0x77c19aeb
jae 0x1008803a
mov cl, byte [ebp - 0x3d]
xor eax, eax
test cl, 1
mov byte [ebp - 0xb5], al
jne 0x10086dda
jmp 0x10086ea4
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
movsx ecx, byte [eax]
mov al, 1
cmp ecx, 0x2b
mov byte [ebp - 0xb6], al
je 0x10086e42
mov eax, dword [0x1028915c]
sub eax, dword [0x10289160]
mov ecx, 0x213926d4
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0xc891a236
xor ecx, 0xffffffff
and ecx, 0x376e5dc9
or eax, ecx
xor eax, 0xffffffff
sub eax, 0xdaa128d5
cmp eax, 0x2813e51d
jb 0x1008807b
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
movsx eax, byte [eax]
cmp eax, 0x2d
sete al
mov byte [ebp - 0xb6], al
mov al, byte [ebp - 0xb6]
mov byte [ebp - 0xb7], al
mov ecx, dword [0x10289174]
mov eax, dword [0x10289178]
sub ecx, 0x1a61955b
sub ecx, eax
add ecx, 0x1a61955b
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x86ed0c3d
and ecx, 0x7912f3c2
or eax, ecx
xor eax, 0x57ee41be
sub eax, 0xc0d0041a
and eax, 0x9ef4449c
cmp eax, 0x5249a63e
jb 0x10086e4e
mov al, byte [ebp - 0xb7]
mov byte [ebp - 0xb5], al
jmp 0x10086ea4
mov al, byte [ebp - 0xb5]
mov byte [ebp - 0xb8], al
mov eax, dword [0x1028917c]
mov edx, dword [0x10289180]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
add eax, 0x4a365d84
add eax, 0xdd80cef2
sub eax, 0x4a365d84
xor eax, 0xffffffff
or eax, 0xd2f68e24
or eax, 0x9a32378b
xor eax, 0xffffffff
cmp eax, 0x859beffd
jae 0x10088080
mov ecx, dword [ebp - 0xb0]
mov dl, byte [ebp - 0xb8]
mov esi, dword [0x10289184]
mov ebx, dword [0x10289188]
mov eax, esi
xor eax, ebx
xor eax, 0xffffffff
mov edi, ebx
and edi, eax
mov eax, dword [ebp - 0xb4]
shl edi, 1
sub edi, ebx
sub esi, edi
mov edi, esi
and edi, 0x3ee9eef
xor edi, 0xffffffff
add esi, 0x3ee9eef
add esi, 1
add esi, edi
or esi, 0x40a525ce
sub esi, 0xa219ef1b
mov dword [ebp - 0xc0], esi
and dl, 1
movzx edx, dl
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1004c730
mov edx, eax
mov eax, dword [ebp - 0xc0]
mov ecx, edx
xor ecx, 0xffffffff
or ecx, 0xfffff1ff
xor edx, 0xffffffff
or edx, 0xfffff1ff
and ecx, edx
xor ecx, 0xffffffff
cmp ecx, 0x800
sete cl
mov byte [ebp - 0xb9], cl
cmp eax, 0x89ffb4e5
jb 0x10086ef0
mov al, byte [ebp - 0xb9]
test al, 1
jne 0x10086fa4
jmp 0x100870ab
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax]
mov eax, edx
and eax, 2
or edx, 2
add eax, edx
cmp eax, dword [ecx]
ja 0x100870ab
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [ecx]
movsx eax, byte [eax + ecx]
cmp eax, 0x30
jne 0x100870ab
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x50]
mov eax, dword [0x10289194]
sub eax, dword [0x10289198]
sub eax, 0x9e4c981c
or eax, 0x42ade799
add eax, 0x4ba90fc8
mov ecx, dword [ecx]
mov edx, dword [edx]
movsx ecx, byte [ecx + edx + 1]
cmp ecx, 0x78
sete cl
mov byte [ebp - 0xc1], cl
cmp eax, 0xe4cdc47a
ja 0x10086fdb
mov al, byte [ebp - 0xc1]
test al, 1
jne 0x1008708e
jmp 0x10087031
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x50]
mov eax, dword [0x102891a4]
xor eax, dword [0x102891a8]
sub eax, 0x1cb0d812
xor eax, 0xffffffff
or eax, 0xd74830dd
xor eax, 0xffffffff
imul eax, eax, 0xe8c561f5
mov ecx, dword [ecx]
mov edx, dword [edx]
movsx ecx, byte [ecx + edx + 1]
cmp ecx, 0x58
sete cl
mov byte [ebp - 0xc2], cl
cmp eax, 0x25d18355
jb 0x100880a6
mov al, byte [ebp - 0xc2]
test al, 1
jne 0x1008708e
jmp 0x100870ab
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax]
mov edx, ecx
and edx, 2
shl edx, 1
xor ecx, 2
add ecx, edx
mov dword [eax], ecx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.1003ed50
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], ecx
call fcn.1003e6d0
add esp, 4
mov dword [ebp - 0xc8], eax
jmp 0x100870ec
mov eax, dword [0x102891ac]
mov esi, dword [0x102891b0]
mov edi, esi
xor edi, 0xffffffff
mov edx, eax
and edx, edi
mov ecx, eax
or ecx, edi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
sub eax, 0xf3589064
xor eax, 0xffffffff
or eax, 0xc7ecbadd
mov ecx, eax
xor ecx, 0xffffffff
and eax, 0xdb5ed7a9
and ecx, 0x24a12856
or eax, ecx
xor eax, 0x543482d8
cmp eax, 0xf5647c7d
ja 0x100880ab
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [0x102891b4]
mov edi, dword [0x102891b8]
mov eax, edx
and eax, edi
xor edx, edi
or eax, edx
mov edi, 0x791eabfb
xor edx, edx
div edi
or eax, 0x3ab48f58
mov edi, eax
and edi, 0x7c729b1c
mov edx, eax
or edx, 0x7c729b1c
xor edx, 0xffffffff
imul edx, edi
mov edi, eax
and edi, 0x838d64e3
or eax, 0x838d64e3
imul eax, edi
add eax, edx
mov dword [ebp - 0xd8], eax
call fcn.100284c0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa4]
mov dword [eax], edx
mov eax, dword [esi]
mov dword [ebp - 0x10], 0xffffffff
xor edx, edx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.100884d0
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
mov dword [ebp - 0xdc], eax
xor eax, eax
sub esp, 4
mov dword [esp], 0
call fcn.100887b0
mov ecx, dword [ebp - 0x50]
mov edx, eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], edx
mov edx, dword [ecx]
add edx, dword [esi]
mov dword [ebp - 0xd0], edx
mov ecx, dword [ecx]
mov dword [ebp - 0xcc], ecx
cmp eax, 0x62260124
jae 0x10087144
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xd4]
mov dword [ebp - 0x10], 1
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.100885e0
jmp 0x1008725d
mov eax, dword [0x102891bc]
mov esi, dword [0x102891c0]
mov edx, esi
xor edx, 0xffffffff
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, esi
add eax, edx
sub eax, ecx
sub eax, 0xda76f98e
sub eax, 0xdffe8c40
sub eax, 0xcc9df2a
add eax, 0xdffe8c40
mov ecx, eax
xor ecx, 0x2639a760
xor ecx, 0xffffffff
or eax, 0x2639a760
and eax, ecx
cmp eax, 0x442c0dfb
jae 0x10088107
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.1003ed50
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x10], 3
sub esp, 4
mov eax, esp
mov dword [eax], ecx
call fcn.10088920
add esp, 4
mov dword [ebp - 0xe0], eax
jmp 0x100872eb
mov eax, dword [0x102891cc]
or eax, dword [0x102891d0]
or eax, 0x902b808f
sub eax, 0xfc257e0
add eax, 0x4abc5326
add eax, 0xfc257e0
mov ecx, eax
xor ecx, 0x47cd902d
xor ecx, 0xffffffff
or eax, 0x47cd902d
and eax, ecx
cmp eax, 0xe586a192
jae 0x10088125
mov ecx, dword [ebp - 0x9c]
mov eax, dword [0x102891d4]
sub eax, dword [0x102891d8]
add eax, 0x8e4ecc7c
sub eax, 0xf577edc9
mov esi, eax
xor esi, 0xffffffff
and esi, 0x7cd19a8c
mov edx, eax
and edx, 0x832e6573
imul edx, esi
mov esi, eax
and esi, 0x7cd19a8c
or eax, 0x7cd19a8c
imul eax, esi
add eax, edx
mov dword [ebp - 0xe8], eax
call fcn.100284c0
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xe8]
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0xe4], ecx
cmp eax, 0xf4517e20
je 0x10088125
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x10], 1
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10088df0
jmp 0x100873c0
mov ecx, dword [ebp - 0x98]
xor eax, eax
sub esp, 4
mov dword [esp], 0
call fcn.100662d0
mov ecx, eax
mov eax, dword [ebp - 0x94]
mov dword [eax], ecx
mov eax, dword [eax]
movsx eax, byte [eax]
cmp eax, 0x7f
je 0x10087659
mov esi, dword [0x102891dc]
mov edx, dword [0x102891e0]
mov eax, esi
xor eax, 0xffffffff
and eax, 0xadaf6811
and esi, 0x525097ee
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0xadaf6811
and edx, 0x525097ee
or eax, esi
or ecx, edx
xor eax, ecx
xor eax, 0xb7ab6581
add eax, 0x59446efc
mov ecx, eax
and ecx, 0x3ed17b74
xor ecx, 0xffffffff
add eax, 0x3ed17b74
add eax, 1
add eax, ecx
cmp eax, 0x306ac1f1
jbe 0x10088143
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
movsx ecx, byte [eax]
xor eax, eax
cmp eax, ecx
jge 0x10087659
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax]
mov dword [ebp - 0x10], 2
call fcn.10088f80
mov byte [ebp - 0xe9], al
jmp 0x10087480
mov eax, dword [ebp - 0x90]
mov cl, byte [ebp - 0xe9]
mov byte [eax], cl
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
movsx ecx, byte [eax]
xor eax, eax
cmp ecx, 0x7f
mov byte [ebp - 0xea], al
je 0x100874ea
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
movsx edx, byte [eax]
xor eax, eax
xor ecx, ecx
cmp ecx, edx
mov byte [ebp - 0xea], al
jge 0x100874ea
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
movsx eax, byte [eax]
mov ecx, dword [ecx]
sub ecx, dword [edx]
cmp eax, ecx
setb al
mov byte [ebp - 0xea], al
mov al, byte [ebp - 0xea]
mov byte [ebp - 0xeb], al
mov ecx, dword [0x102891fc]
mov esi, dword [0x10289200]
mov edx, esi
xor edx, 0xffffffff
mov eax, ecx
and eax, edx
mov edx, ecx
xor edx, esi
add ecx, edx
sub ecx, eax
add ecx, 0x13350bbb
mov edx, ecx
and edx, 0xeb33a4e8
mov eax, ecx
or eax, 0xeb33a4e8
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, 0x14cc5b17
or ecx, 0x14cc5b17
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0x9017b5f9
xor ecx, 0xffffffff
and ecx, 0x6fe84a06
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0xc7fa0489
ja 0x10088148
mov eax, dword [0x10289204]
add eax, dword [0x10289208]
mov ecx, 0x90ba5de7
xor edx, edx
div ecx
sub eax, 0x70e8257
sub eax, 0x3176c9f3
cmp eax, 0x37c509bd
jbe 0x10088148
mov al, byte [ebp - 0xeb]
test al, 1
jne 0x1008759d
jmp 0x10087654
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x90]
mov esi, dword [ebp - 0x94]
mov esi, dword [esi]
movsx edi, byte [esi]
mov esi, dword [eax]
sub esi, edi
mov dword [eax], esi
movsx esi, byte [edx]
mov edx, dword [eax]
mov dword [ebp - 0x10], 2
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], esi
mov dword [eax], edx
mov dword [eax + 4], 1
call fcn.100890d0
jmp 0x100875e4
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
movsx ecx, byte [eax + 1]
xor eax, eax
cmp eax, ecx
jge 0x1008760c
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax]
add ecx, 1
mov dword [eax], ecx
jmp 0x1008760c
mov eax, dword [0x10289224]
mov ecx, dword [0x10289228]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
add eax, 0xec225407
add eax, 0xcc537075
mov ecx, eax
xor ecx, 0xbc557757
xor ecx, 0xffffffff
and ecx, 0xbc557757
shl ecx, 1
sub ecx, 0xbc557757
sub eax, ecx
cmp eax, 0xf9b9fdac
je 0x1008760c
jmp 0x1008748e
jmp 0x10087659
mov eax, dword [0x1028922c]
mov edx, dword [0x10289230]
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
and ecx, 0x8917ac39
mov edx, eax
xor edx, 0x76e853c6
add eax, edx
sub eax, ecx
and eax, 0x30aeb6a9
sub eax, 0x9de245e9
cmp eax, 0xb2def6b9
ja 0x1008814d
mov ecx, dword [ebp - 0xa4]
mov eax, dword [0x10289234]
mov edx, dword [0x10289238]
imul eax, edx
mov edx, eax
not edx
and edx, 0x9a9f3004
and eax, 0x6560cffb
sub eax, edx
add eax, 0xbfe86cc0
mov dword [ebp - 0xf0], eax
call fcn.10048970
mov ecx, dword [ebp - 0x48]
mov edx, eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.100827d0
mov ecx, eax
mov eax, dword [ebp - 0xf0]
sub ecx, 1
sbb edx, 0
setl cl
mov byte [ebp - 0xec], cl
cmp eax, 0x63276384
ja 0x1008769c
mov al, byte [ebp - 0xec]
test al, 1
jne 0x10087790
jmp 0x1008771a
mov eax, dword [0x10289244]
mov ecx, dword [0x10289248]
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [ebp - 0xb4]
mov edx, ecx
not edx
or edx, 0xc4140d03
add ecx, edx
imul ecx, ecx, 0x450168ac
add ecx, 0x450168ac
xor ecx, 0x9c9a5dff
mov dword [ebp - 0xf8], ecx
mov ecx, dword [eax]
call fcn.100827d0
mov ecx, eax
mov eax, dword [ebp - 0xf8]
mov edx, dword [ebp - 0x48]
cmp ecx, dword [edx]
setbe cl
mov byte [ebp - 0xf1], cl
cmp eax, 0x6553735d
jbe 0x1008771a
mov al, byte [ebp - 0xf1]
test al, 1
jne 0x10087790
jmp 0x100877a1
mov eax, dword [ebp - 0x8c]
mov dword [eax], 0
jmp 0x10087887
mov eax, dword [0x1028925c]
mov edx, dword [0x10289260]
mov esi, eax
xor esi, edx
xor esi, 0xffffffff
mov ecx, edx
and ecx, esi
shl ecx, 1
sub ecx, edx
sub eax, ecx
mov ecx, eax
and ecx, 0xb79ee715
mov edx, eax
xor edx, 0x486118ea
add eax, edx
sub eax, ecx
xor eax, 0xbf79dd9e
mov ecx, eax
xor ecx, 0xe5fdc1b1
xor ecx, 0xffffffff
or eax, 0xe5fdc1b1
and eax, ecx
cmp eax, 0x3062448e
je 0x10088171
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [0x10289264]
mov edx, dword [0x10289268]
sub ecx, edx
mov edx, ecx
and edx, 0xacbbbd83
mov edi, ecx
xor edi, 0x5344427c
add ecx, edi
sub ecx, edx
add ecx, 0x3af1dc60
mov edx, ecx
not edx
mov edi, ecx
and edi, 0x86ea4792
and edx, 0x7915b86d
imul edx, edi
mov edi, ecx
and edi, 0x7915b86d
or ecx, 0x7915b86d
imul ecx, edi
add ecx, edx
mov dword [ebp - 0x100], ecx
mov ecx, dword [eax]
call fcn.100827d0
mov ecx, dword [ebp - 0x8c]
mov edi, eax
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0xfc], edi
mov edx, dword [ebp - 0xfc]
sub edx, dword [esi]
mov dword [ecx], edx
cmp eax, 0x8f75d304
jbe 0x100877f3
jmp 0x10087887
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
call fcn.1004c730
mov ecx, eax
mov eax, dword [ebp - 0x88]
and ecx, 0x1c0
mov dword [eax], ecx
cmp dword [eax], 0x40
je 0x10087ab7
mov eax, dword [0x1028927c]
xor edx, edx
div dword [0x10289280]
mov ecx, 0x9eadf88a
xor edx, edx
div ecx
xor eax, 0xffffffff
or eax, 0x714ed6a8
xor eax, 0xffffffff
and eax, 0x36333c65
cmp eax, 0x1cef44d0
ja 0x10088196
mov eax, dword [ebp - 0x88]
cmp dword [eax], 0x100
je 0x10087ab7
mov eax, dword [0x1028928c]
add eax, dword [0x10289290]
or eax, 0xcf355b22
and eax, 0x1f490d4c
mov edx, eax
xor edx, 0xffffffff
and edx, 0xd1253204
mov ecx, eax
and ecx, 0x2edacdfb
imul ecx, edx
mov edx, eax
and edx, 0xd1253204
or eax, 0xd1253204
imul eax, edx
add eax, ecx
cmp eax, 0x86e55678
jae 0x1008819b
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x8c]
mov eax, dword [0x10289294]
mov ebx, dword [0x10289298]
xor eax, 0xffffffff
xor ebx, 0xffffffff
or eax, ebx
xor eax, 0xffffffff
sub eax, 0x7c669809
imul eax, eax, 0x9e980cc8
sub eax, 0xbe1add89
mov edi, dword [edi]
mov dword [ebp - 0x108], edi
mov bl, byte [esi]
mov byte [ebp - 0x101], bl
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
cmp eax, 0xebe93a55
ja 0x1008819b
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x84]
mov bl, byte [ebp - 0x101]
mov esi, dword [ebp - 0x108]
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x10], 2
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], esi
movsx esi, bl
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10089840
add esp, 0x18
jmp 0x100879da
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x84]
movsd xmm0, qword [esi]
movsd qword [ebx], xmm0
mov dword [edx], 0
mov edi, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], 0
call fcn.100887b0
mov edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x44]
mov esi, eax
mov eax, dword [ebp - 0x78]
movsd xmm0, qword [ebx]
movsd qword [eax], xmm0
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10089d60
add esp, 0x18
jmp 0x10087a4e
mov eax, dword [0x1028929c]
or eax, dword [0x102892a0]
xor eax, 0x54b4f6b7
mov edx, eax
xor edx, 0xffffffff
and edx, 0x7db411e4
mov ecx, eax
and ecx, 0x824bee1b
imul ecx, edx
mov edx, eax
and edx, 0x7db411e4
or eax, 0x7db411e4
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x23e87236
and eax, 0xdc178dc9
shl eax, 1
sub eax, ecx
cmp eax, 0x17bc4cd2
jbe 0x100881b0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x10087d68
mov eax, dword [0x102892ac]
imul eax, dword [0x102892b0]
mov edx, eax
and edx, 0xa2d31be2
mov ecx, eax
or ecx, 0xa2d31be2
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x5d2ce41d
or eax, 0x5d2ce41d
imul eax, edx
add eax, ecx
imul ecx, eax, 0x683c9c1b
mov eax, ecx
xor eax, 0x73fbdf21
and eax, ecx
cmp eax, 0x6530c687
jb 0x100881c5
mov ecx, dword [ebp - 0x88]
mov eax, dword [0x102892b4]
mov edi, dword [0x102892b8]
mov ebx, edi
xor ebx, 0xffffffff
mov esi, eax
and esi, ebx
mov edx, eax
or edx, ebx
xor edx, 0xffffffff
imul edx, esi
mov esi, eax
and esi, edi
or eax, edi
imul eax, esi
add eax, edx
xor edx, edx
sub edx, eax
add edx, 0xfb839de4
xor eax, eax
sub eax, edx
xor eax, 0xffffffff
or eax, 0xdb05b2ee
xor eax, 0xffffffff
add eax, 0x28248d4f
add eax, 0xbc2444bf
sub eax, 0x28248d4f
cmp dword [ecx], 0x100
sete cl
mov byte [ebp - 0x109], cl
cmp eax, 0x7ea1320b
je 0x100881c5
mov al, byte [ebp - 0x109]
test al, 1
jne 0x10087b89
jmp 0x10087cf2
mov eax, dword [0x102892bc]
xor edx, edx
div dword [0x102892c0]
or eax, 0x4c29ec76
sub eax, 0x7394cc22
add eax, 0xb84600e2
add eax, 1
cmp eax, 0x5b257e4c
jbe 0x100881ca
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xb0]
mov edi, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], 0
call fcn.100887b0
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x44]
mov esi, eax
mov eax, dword [ebp - 0x70]
movsd xmm0, qword [ebx]
movsd qword [eax], xmm0
mov dword [ebp - 0x10], 2
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10089d60
add esp, 0x18
jmp 0x10087c14
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x74]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x68]
movsd qword [ebx], xmm0
mov edi, dword [edi]
movsx esi, byte [esi]
movsd xmm0, qword [ebx]
movsd qword [eax], xmm0
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10089840
add esp, 0x18
jmp 0x10087c67
mov esi, dword [ebp - 0x6c]
mov eax, dword [0x102892e4]
mov ebx, dword [0x102892e8]
mov ecx, ebx
xor ecx, 0xffffffff
mov edi, eax
and edi, ecx
mov edx, eax
or edx, ecx
mov ecx, dword [ebp - 0x8c]
xor edx, 0xffffffff
imul edx, edi
mov edi, eax
and edi, ebx
or eax, ebx
imul eax, edi
add eax, edx
mov edi, eax
xor edi, 0xffffffff
and edi, 0xc189e493
mov edx, eax
and edx, 0x3e761b6c
imul edx, edi
mov edi, eax
and edi, 0xc189e493
or eax, 0xc189e493
imul eax, edi
add eax, edx
mov edi, 0xa9a6fbb1
xor edx, edx
div edi
mov edx, dword [ebp - 0x24]
sub eax, 0x7a8a500f
mov edi, dword [esi]
mov dword [edx], edi
mov esi, dword [esi + 4]
mov dword [edx + 4], esi
mov dword [ecx], 0
cmp eax, 0xdc1a5fef
jae 0x10087c67
jmp 0x10087d63
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xb0]
mov edi, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], 0
call fcn.100887b0
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x44]
mov esi, eax
mov eax, dword [ebp - 0x60]
movsd xmm0, qword [ebx]
movsd qword [eax], xmm0
mov dword [ebp - 0x10], 2
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10089d60
add esp, 0x18
jmp 0x10087d53
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x64]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x10087d68
mov eax, dword [0x102892ec]
sub eax, dword [0x102892f0]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x13193193
add eax, ecx
imul eax, eax, 0x1cd69ed2
mov edx, eax
and edx, 0x9a4bd198
mov ecx, eax
or ecx, 0x9a4bd198
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x65b42e67
or eax, 0x65b42e67
imul eax, edx
add eax, ecx
cmp eax, 0x431c5675
jbe 0x100881fd
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x48]
mov eax, dword [0x102892f4]
mov ebx, dword [0x102892f8]
mov esi, eax
xor esi, 0xffffffff
and esi, 0x498c9e85
and eax, 0xb673617a
mov edi, ebx
xor edi, 0xffffffff
and edi, 0x498c9e85
and ebx, 0xb673617a
or esi, eax
mov eax, dword [ebp - 0xb0]
or edi, ebx
xor esi, edi
mov ebx, esi
and ebx, 0x3fe9a613
mov edi, esi
or edi, 0x3fe9a613
xor edi, 0xffffffff
imul edi, ebx
mov ebx, esi
and ebx, 0xc01659ec
or esi, 0xc01659ec
imul esi, ebx
add esi, edi
or esi, 0xba6b4cf0
mov ebx, esi
xor ebx, 0xffffffff
and ebx, 0xc4090152
mov edi, esi
and edi, 0x3bf6fead
imul edi, ebx
mov ebx, esi
and ebx, 0xc4090152
or esi, 0xc4090152
imul esi, ebx
add esi, edi
mov dword [ebp - 0x114], esi
mov edx, dword [edx]
mov edi, dword [eax]
mov esi, edx
xor esi, 0xffffffff
and esi, edi
xor edi, 0xffffffff
and edx, edi
sub edx, esi
mov dword [ebp - 0x118], edx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.100887b0
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x58]
mov esi, eax
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x110], esi
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
cmp eax, 0x2c94bcfc
jbe 0x100881fd
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x110]
mov edi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x10], 2
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], edi
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10089d60
add esp, 0x18
jmp 0x10087eea
mov ecx, dword [0x102892fc]
add ecx, dword [0x10289300]
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xe9b2c6c9
or ecx, 0x164d3936
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x360bc988
xor edx, edx
div ecx
sub eax, 0x6d592cd4
cmp eax, 0x4e04a89c
jb 0x1008822b
mov esi, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x5c]
mov eax, dword [0x10289304]
mov ecx, dword [0x10289308]
mov ebx, eax
and ebx, ecx
xor eax, ecx
mov ecx, dword [ebp - 0x24]
or ebx, eax
mov eax, dword [ebp - 0xb4]
add ebx, 0xe55a669d
add ebx, 1
sub ebx, 0xc8e2b13b
sub ebx, 0x69be2f74
add ebx, 0x30ec590a
add ebx, 0x69be2f74
mov dword [ebp - 0x124], ebx
mov ebx, dword [edx]
mov dword [ecx], ebx
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax + 4], 0
mov dword [eax], 0
call fcn.100830d0
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x124]
mov edx, dword [ebp - 0x24]
mov edi, dword [edi]
mov dword [ebp - 0x120], edi
mov bl, byte [esi]
mov byte [ebp - 0x119], bl
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
cmp eax, 0x45c153f0
ja 0x1008822b
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x3c]
mov bl, byte [ebp - 0x119]
mov esi, dword [ebp - 0x120]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x10], 2
sub esp, 0x18
movsd xmm0, qword [eax]
mov eax, esp
movsd qword [eax + 8], xmm0
mov dword [eax + 0x14], esi
movsx esi, bl
mov dword [eax + 0x10], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10089840
add esp, 0x18
jmp 0x1008800f
mov ecx, dword [ebp - 0x98]
call fcn.10006100
mov ecx, dword [ebp - 0xa4]
call fcn.10006100
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov ebx, esp
push eax
mov esi, esp
push eax
mov ecx, esp
push eax
mov edi, esp
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebx], eax
mov eax, dword [ebp - 0x128]
mov ebx, dword [ebp - 0x34]
mov dword [esi], ebx
mov bl, byte [ebp - 0x29]
mov esi, dword [ebp - 0x30]
mov dword [ecx], esi
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
mov byte [edi], bl
mov dword [edx], esi
mov dword [eax], ecx
jmp 0x10086c5f
jmp 0x10086e2e
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
mov dl, byte [ebp - 0xb8]
and dl, 1
movzx edx, dl
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.1004c730
jmp 0x10086ef0
jmp 0x10087031
mov esi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xa8]
call fcn.100284c0
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0xa4]
mov dword [edx], esi
mov eax, dword [eax]
mov dword [ebp - 0x10], 0xffffffff
xor edx, edx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.100884d0
mov ecx, dword [ebp - 0xa4]
xor eax, eax
sub esp, 4
mov dword [esp], 0
call fcn.100887b0
jmp 0x10087144
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xb4]
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003ed50
jmp 0x100872aa
mov ecx, dword [ebp - 0x9c]
call fcn.100284c0
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xa0]
mov dword [eax], ecx
jmp 0x10087327
jmp 0x1008744c
jmp 0x10087561
mov ecx, dword [ebp - 0xa4]
call fcn.10048970
mov ecx, dword [ebp - 0x48]
mov edx, eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx], edx
mov ecx, dword [eax]
call fcn.100827d0
jmp 0x1008769c
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
call fcn.100827d0
mov ecx, eax
mov eax, dword [ebp - 0x8c]
xor edx, edx
sub edx, dword [esi]
add ecx, edx
mov dword [eax], ecx
jmp 0x100877f3
jmp 0x100878de
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x10087938
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x10087aa2
jmp 0x10087b05
mov ecx, dword [ebp - 0xa4]
xor eax, eax
sub esp, 4
mov dword [esp], 0
call fcn.100887b0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x70]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov dword [ebp - 0x10], 2
jmp 0x10087bb3
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.100887b0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x10087dbb
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xb4]
mov edx, dword [ebp - 0x5c]
mov esi, dword [edx]
mov dword [ecx], esi
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax + 4], 0
mov dword [eax], 0
call fcn.100830d0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x54]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp 0x10087f27