Function at 0x10016f10
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov esi, esp
mov eax, dword [0x10085800]
xor eax, ebp
mov dword [esi + 0x60], eax
mov edx, dword [0x10088ab8]
cmp dword [0x10088ab4], 0xa
setl al
mov ecx, edx
xor ecx, 1
lea ecx, [ecx + edx*2]
lea edi, [edx + edx]
or edi, 2
sub ecx, edi
add ecx, 2
imul ecx, edx
test cl, 1
sete dl
mov ah, al
xor ah, dl
add ah, al
mov dh, al
or dh, dl
add dh, ah
or cl, al
add cl, dh
and al, dl
sub cl, al
test cl, 1
jne 0x100171f1
push eax
mov dword [esi + 0x14], esp
push eax
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x40], esp
push eax
mov edi, esp
push eax
mov ebx, esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x3c], eax
mov esp, eax
push eax
mov dword [esi + 0x4c], esp
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x10085104
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 0x1c
movaps xmm0, xmmword [0x100761b0]
movups xmmword [esp + 4], xmm0
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call eax
mov dword [ebx], eax
mov dword [esi + 0x28], ebx
mov eax, dword [ebx]
cmp eax, 0xffffffff
mov dword [esi + 0x50], edi
sete byte [edi]
push eax
mov dword [esi + 0x20], esp
mov eax, dword [0x1007e670]
mov dword [esi + 4], eax
mov ecx, dword [0x1007e674]
not eax
mov edi, ecx
not edi
mov ebx, eax
and ebx, edi
mov edx, dword [esi + 4]
and edx, edi
add edx, edx
mov dword [esi + 0xc], ebx
sub dword [esi + 0xc], edx
xor eax, edi
mov edx, dword [esi + 0xc]
lea eax, [edx + eax*2]
mov edx, dword [esi + 4]
lea eax, [eax + edx*2]
not ebx
add ebx, ebx
sub eax, ebx
mov dword [esi + 0xc], eax
mov ebx, edx
mov eax, edx
xor ebx, ecx
mov edx, ebx
not edx
or ecx, edi
and ecx, eax
add ecx, edx
or edi, eax
sub ecx, edi
mov edx, ecx
and edx, ebx
add edx, edx
mov edi, ebx
sub edi, edx
mov edx, ecx
or edx, ebx
add edx, edi
xor ebx, ecx
not ebx
add ebx, edx
mov eax, dword [esi + 0xc]
add eax, 1
add ecx, ebx
add ecx, 1
not ecx
lea edx, [ecx + ecx]
sub edx, ecx
mov ecx, edx
not ecx
add ecx, edx
add ecx, edx
mov edx, ecx
not edx
or ecx, edx
and ecx, eax
add ecx, edx
lea eax, [ecx + ecx*2]
add ecx, ecx
sub ecx, eax
mov eax, ecx
xor eax, 0x9f5e20b5
add eax, ecx
xor ecx, 0x60a1df4a
lea edx, [eax + ecx]
add eax, ecx
add eax, 0x9f5e20b6
mov ecx, eax
xor ecx, 0x90790137
add ecx, edx
add ecx, 0x9f5e20b6
mov edx, eax
not edx
or edx, 0x90790137
add edx, ecx
and eax, 0x90790137
lea ecx, [edx + eax]
add eax, edx
add eax, 1
not eax
lea eax, [eax + ecx*2]
add eax, 2
imul ecx, eax, 0x74285d1d
lea eax, [ecx - 0x4c1f9597]
mov edx, eax
not edx
and edx, 0x2dba7f9d
add edx, edx
lea ecx, [edx + ecx*2]
add ecx, 0x67c0d4d2
xor eax, 0x52458062
lea edx, [ecx + eax]
add eax, ecx
add eax, 0xa48b00c6
mov ecx, eax
and ecx, 0x60747d33
add ecx, edx
add ecx, 0xa48b00c6
or eax, 0x9f8b82cc
sub ecx, eax
imul ecx, ecx, 0x3bf4d35
lea eax, [ecx - 0x3bf4d35]
mov edx, eax
xor edx, 0x366d03ed
add ecx, edx
add ecx, 0xfc40b2cb
mov edx, eax
or edx, 0x366d03ed
sub ecx, edx
or eax, 0xc992fc12
lea edx, [ecx + eax]
add eax, ecx
add eax, 0x20e0f1b7
mov ecx, eax
xor ecx, 0x366d03ed
lea ecx, [ecx + edx*2]
add ecx, 0x41c1e36e
mov edx, eax
or edx, 0x366d03ed
sub ecx, edx
not eax
or eax, 0x366d03ed
add eax, ecx
add eax, 0x366d03ee
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
push eax
mov dword [esi + 0x24], esp
push eax
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0xc], esp
mov edx, dword [0x10088ab0]
mov eax, dword [str.y1_S.]
mov ecx, dword [0x1007e6ac]
mov edi, eax
or edi, ecx
not edi
lea edi, [ecx + edi*2]
xor ecx, eax
not ecx
sub ecx, edi
not eax
add eax, ecx
add eax, 0xa
cmp dword [0x10088aac], eax
setge cl
setl al
mov edi, edx
not edi
and edi, 1
add edi, edx
mov ebx, edx
or ebx, 0xfffffffe
add ebx, edi
add ebx, 2
imul ebx, edx
test bl, 1
sete dl
and bl, al
and cl, dl
or cl, bl
mov ah, al
or ah, dl
add cl, ah
not ah
add ah, cl
mov ecx, dword [esi + 0xc]
and al, dl
not al
add al, ah
mov dword [ecx], 0x2ddbf510
test al, 1
jne 0x10019170
push eax
push eax
push eax
push eax
push eax
mov edi, esp
push eax
mov ebx, esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x10085104
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 0x1c
movaps xmm0, xmmword [0x100761b0]
movups xmmword [esp + 4], xmm0
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
call eax
mov dword [ebx], eax
mov eax, dword [ebx]
cmp eax, 0xffffffff
sete byte [edi]
push eax
mov dword [esi + 0xc], esp
mov edi, dword [0x1007e670]
mov eax, dword [0x1007e674]
mov edx, eax
not edx
mov ecx, edi
or ecx, eax
mov dword [esi + 4], ecx
mov ebx, edi
and ebx, eax
lea ecx, [eax + edx*2]
add ecx, 1
xor eax, edi
mov dword [esi + 0x14], eax
add ebx, eax
sub ebx, dword [esi + 4]
sub ebx, edx
or edx, edi
mov dword [esi + 4], edi
mov eax, edi
not eax
mov edi, eax
and edi, ecx
xor eax, ecx
add eax, edi
or dword [esi + 4], ecx
not ecx
add ecx, eax
add ecx, dword [esi + 4]
lea eax, [ecx + edi]
add ecx, edi
add ecx, 2
lea edi, [eax + eax]
add edi, 4
sub edi, ecx
add edx, ebx
mov eax, edx
mov ecx, dword [esi + 0x14]
xor eax, ecx
add eax, edx
not edx
or edx, ecx
add edi, 1
add eax, edx
add eax, 1
mov edx, eax
not edx
add edx, edx
add edx, eax
mov ecx, edx
not ecx
mov eax, edi
sub eax, edx
mov ebx, edi
xor ebx, ecx
add ebx, eax
or edx, edi
add edx, ebx
sub edx, edi
and ecx, edi
add ecx, edx
mov eax, ecx
neg eax
and eax, 0x1f5e20b5
add eax, eax
sub eax, ecx
lea edx, [eax + ecx*2]
add edx, 0xfffffffe
lea eax, [ecx + ecx]
add eax, 0xfffffffe
or eax, 0x3ebc416a
sub edx, eax
lea eax, [edx - 0x60a1df4b]
mov ecx, eax
and ecx, 0x10790137
add ecx, ecx
neg ecx
add ecx, edx
add ecx, 0x9f5e20b5
xor eax, 0x6f86fec8
add eax, ecx
lea ecx, [edx + eax]
add ecx, 0x9f5e20b5
add eax, edx
add eax, 0xc0502324
mov edx, eax
and edx, 0x60a1df4a
add ecx, edx
add ecx, 0x20f2026f
mov edx, eax
or edx, 0x9f5e20b5
add edx, ecx
mov ecx, eax
xor ecx, 0x60a1df4a
add ecx, edx
not eax
add eax, ecx
imul eax, eax, 0x74285d1d
lea edx, [eax - 0x7782bb47]
not edx
mov ecx, edx
and ecx, 0x9f8b82cc
add ecx, eax
add ecx, 0x887d44b9
or edx, 0x60747d33
sub ecx, edx
mov eax, ecx
xor eax, 0x52458062
mov edx, ecx
sub edx, eax
not ecx
mov eax, ecx
and eax, 0x2dba7f9d
add eax, eax
sub edx, eax
add edx, ecx
mov eax, edx
neg eax
mov ecx, eax
and ecx, 0x9f8b82cc
add ecx, edx
or eax, 0x60747d33
sub ecx, eax
imul eax, ecx, 0x3bf4d35
add eax, 0xee5b25b2
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x366d03ed
sub eax, edx
or ecx, 0xc992fc12
add eax, ecx
add eax, 0x6cda07db
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
push eax
push eax
push eax
mov eax, esp
mov ecx, dword [0x1007ea58]
mov edx, dword [0x1007ea5c]
mov edi, ecx
not edi
and edi, edx
not edx
or edx, ecx
lea ecx, [edi + edx]
add ecx, 0x2ddbf511
mov dword [eax], ecx
jmp 0x10016f71
mov ecx, dword [0x10088aa8]
cmp dword [0x10088aa4], 0xa
setl al
setge dl
lea ebx, [ecx - 1]
imul ebx, ecx
test bl, 1
sete cl
and dl, cl
add dl, cl
mov ah, al
or ah, cl
add ah, dl
and al, cl
sub ah, al
test ah, 1
je 0x10017410
jmp 0x10019100
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov dword [esi + 8], eax
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x10085134
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esi + 0x28]
push dword [ecx]
call eax
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ebx, dword [0x1007e688]
mov edx, dword [0x1007e68c]
mov dword [esi + 4], edx
mov ecx, ebx
not ecx
mov dword [esi + 0x18], ecx
mov eax, edx
not eax
lea edx, [edx + eax*2]
add edx, 1
mov dword [esi + 0x10], edx
mov eax, ecx
and eax, edx
or ecx, edx
lea eax, [ecx + eax*2]
lea eax, [eax + ebx*2]
mov ecx, ebx
or ecx, edx
add ecx, ecx
sub eax, ecx
mov edi, eax
not edi
mov ecx, edi
sub ecx, eax
sub ecx, eax
add ecx, eax
sub ecx, edi
mov eax, ecx
neg eax
and eax, 0xaab00995
lea eax, [eax + ecx*2]
add eax, 0xfffffffe
add ecx, 0xffffffff
or ecx, 0xaab00995
sub eax, ecx
add eax, 0x554ff66a
mov ecx, eax
xor ecx, 0x554ff66a
mov edx, eax
sub edx, ecx
not eax
mov ecx, eax
and ecx, 0x2ab00995
add ecx, ecx
sub edx, ecx
add edx, eax
mov dword [esi + 0x1c], edx
mov eax, ebx
mov ecx, dword [esi + 4]
and eax, ecx
mov edi, ebx
xor edi, ecx
or edi, eax
mov ecx, edi
not ecx
lea edx, [edi + ecx*2]
add edx, 1
mov eax, edx
not eax
or eax, edx
and eax, 0x7bf8f71a
or edx, 0x840708e5
add eax, edx
add eax, 1
or ecx, edi
and ecx, 0x840708e5
or edi, 0x7bf8f71a
add ecx, edi
add ecx, 1
mov edx, eax
xor edx, ecx
mov edi, ecx
sub edi, edx
or eax, ecx
add eax, edi
add eax, edx
sub eax, ecx
xor eax, 0x840708e5
mov ecx, dword [esi + 0x1c]
add ecx, eax
add ecx, 0x1ee2cac3
mov eax, ecx
and eax, 0xc982b798
sub ecx, eax
sub ecx, eax
not eax
add eax, eax
sub ecx, eax
mov eax, dword [esi + 0x18]
add eax, eax
add eax, ebx
add eax, 1
and eax, dword [esi + 4]
and ebx, dword [esi + 0x10]
mov edx, eax
not edx
and edx, ebx
mov edi, eax
or edi, ebx
add edi, edx
and eax, ebx
not ebx
add ebx, edi
add eax, ebx
add eax, 1
mov edx, eax
not edx
add edx, edx
add eax, edx
add eax, 1
lea edi, [ecx + 0x367d4866]
mov edx, eax
sub edx, edi
mov edi, 0xc982b79a
sub edi, ecx
mov ebx, edi
or ebx, eax
sub edx, ebx
not ebx
add ebx, ebx
sub edx, ebx
not eax
or eax, edi
add eax, edx
lea edx, [ecx + eax]
add edx, 0x367d4866
mov edi, 1
sub edi, edx
and edi, 0xad9601c4
sub edi, edx
add eax, ecx
add eax, 0x367d4864
or eax, 0x5269fe3b
add eax, edi
imul eax, eax, 0x5704c753
lea ecx, [eax + 0x664e8a32]
mov edx, ecx
xor edx, 0xe61e0ba1
add eax, edx
add eax, 0x664e8a32
not ecx
add eax, ecx
add ecx, ecx
or ecx, 0x33c3e8bc
sub eax, ecx
lea ecx, [eax - 1]
mov edx, ecx
and edx, 0x24d1ba52
lea edx, [edx + eax*2]
add edx, 0xfffffffe
or ecx, 0xdb2e45ad
sub edx, ecx
sub edx, eax
imul eax, edx, 0x4b6d14db
lea ecx, [eax + 0x3fdd9660]
not ecx
mov edx, ecx
and edx, 0x532986ba
add eax, edx
add eax, 0x3fdd9660
or ecx, 0xacd67945
sub eax, ecx
lea ecx, [eax + 0x59acf28a]
mov edx, ecx
not edx
and edx, 0xb8f7e7b
lea eax, [edx + eax*2]
add eax, 0xb359e514
or ecx, 0xb8f7e7b
sub eax, ecx
mov ecx, dword [0x1007e9e4]
mov edx, ecx
not edx
mov edi, dword [0x1007e9e0]
and edx, edi
not edi
or edi, ecx
add edi, edx
mov edx, 9
sub edx, edi
mov ecx, dword [0x1007e9d8]
or ecx, dword [0x1007e9dc]
mov dword [esi + 4], ecx
add eax, 0xb8f7e7b
mov dword [esi + 0x18], eax
cmp dword [0x10088aa0], edx
mov ebx, dword [0x10088a9c]
mov edi, ebx
not edi
setl byte [esi + 0x10]
imul edi, ebx
mov eax, dword [0x1007e9e8]
mov edx, dword [0x1007e9ec]
mov ecx, eax
and ecx, edx
mov ebx, eax
or ebx, edx
not ebx
add ebx, ecx
xor eax, edx
add eax, ebx
add eax, 1
and edi, 1
cmp edi, eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov dword [eax], ecx
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov ecx, dword [esi + 4]
mov eax, ecx
not eax
lea eax, [ecx + eax + 0x567246a]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
sete al
or al, byte [esi + 0x10]
jne 0x10019100
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov dword [esi + 0x18], eax
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x10085134
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esi + 0x28]
push dword [ecx]
call eax
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov ebx, dword [0x1007e688]
mov edi, dword [0x1007e68c]
mov dword [esi + 0x10], edi
mov eax, ebx
not eax
mov dword [esi + 4], eax
not edi
lea ecx, [ebx + eax*2]
add ecx, 1
mov edx, ecx
xor edx, edi
mov eax, ecx
sub eax, edx
mov edx, ecx
or edx, edi
add edx, eax
mov eax, ecx
or eax, dword [esi + 0x10]
sub edx, eax
and ecx, edi
not ecx
add ecx, edx
mov edx, ecx
not edx
mov eax, edx
or eax, 0x554ff66a
add eax, edx
add eax, ecx
or edx, 0xaab00995
add edx, eax
mov dword [esi + 0x1c], edx
mov ecx, ebx
mov edx, dword [esi + 0x10]
xor ecx, edx
and edi, ebx
mov dword [esi + 8], edi
mov eax, ebx
or ebx, edx
not ebx
lea edi, [ebx + ecx*2]
mov ecx, edx
and eax, edx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 4]
mov ebx, eax
or ebx, edx
mov dword [esi + 0x30], ebx
lea edx, [eax + eax]
mov dword [esi + 0x34], edx
and eax, ecx
sub eax, dword [esi + 0x34]
mov edx, dword [esi + 0x48]
mov ecx, edx
not ecx
add edx, edx
sub eax, edx
mov dword [esi + 4], eax
sub edx, dword [esi + 8]
sub edx, ebx
add edx, ecx
sub edi, ecx
or edi, edx
mov ecx, edi
not ecx
mov edx, ecx
and edx, 0x7bf8f71a
mov eax, edi
xor eax, 0x7bf8f71a
mov ebx, eax
sub ebx, edx
add ecx, ebx
add ecx, 0x7bf8f71b
mov edx, edi
and edx, 0x840708e5
or edi, 0x840708e5
lea ebx, [edx + edi*2]
not edi
lea edi, [ebx + edi*4]
add eax, eax
sub edi, eax
not edx
add edx, edx
sub edi, edx
mov eax, ecx
xor eax, edi
mov edx, ecx
or edx, edi
add eax, edx
not edx
add edx, eax
and edi, ecx
lea eax, [edi + edx]
add eax, 1
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x840708e5
mov edi, eax
xor edi, 0x840708e5
add edi, edx
xor eax, 0x7bf8f71a
add eax, edi
or ecx, 0x840708e5
sub eax, ecx
mov ecx, dword [esi + 0x1c]
lea edx, [ecx + ecx]
add edx, 4
lea ecx, [ecx + ecx*2]
add ecx, 6
sub ecx, edx
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x30]
lea edx, [ecx + edx*2]
mov edi, edx
mov ecx, dword [esi + 8]
or edi, ecx
mov ebx, edx
xor ebx, ecx
add ebx, edi
mov edi, ecx
not edi
add edi, ebx
mov ebx, edx
not ebx
or ebx, ecx
add ebx, edi
and ecx, edx
lea edx, [ebx + ecx]
lea edi, [ecx + ebx]
add edi, 2
not edi
lea ebx, [edx + edi*2]
add ebx, 2
sub ebx, edi
add ebx, 1
mov ecx, edi
and ecx, ebx
mov edx, edi
or edx, ebx
add edx, ecx
not ebx
add edx, ebx
or ebx, edi
sub edx, ebx
mov ecx, dword [esi + 0x10]
lea edi, [eax + ecx]
add eax, ecx
add eax, 0xffffffff
mov ecx, edi
neg ecx
add edi, edi
mov ebx, ecx
xor ebx, edx
or ecx, edx
or eax, edx
sub edx, edi
add ebx, edx
sub ebx, ecx
add eax, ebx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x2d9601c4
add edx, edx
sub ecx, edx
mov edx, eax
xor edx, 0x5269fe3b
add edx, ecx
add edx, eax
imul ecx, edx, 0x5704c753
lea eax, [ecx - 0x6aa44e95]
mov edx, eax
and edx, 0x19e1f45e
add ecx, edx
add ecx, 0x955bb16b
not eax
mov edx, eax
and edx, 0xe61e0ba1
sub ecx, edx
mov edx, eax
and edx, 0x19e1f45e
add edx, ecx
or eax, 0x19e1f45e
lea ecx, [edx + eax]
add eax, edx
add eax, 0xb25a22e5
mov edx, eax
and edx, 0x24d1ba52
add ecx, edx
add ecx, 0xb25a22e5
mov edx, eax
not edx
and edx, 0xdb2e45ad
add edx, ecx
xor eax, 0xdb2e45ad
sub edx, eax
imul ecx, edx, 0x4b6d14db
lea eax, [ecx - 0x77b01eff]
mov edx, eax
xor edx, 0xb8f7e7b
add ecx, edx
add ecx, 0x884fe101
mov edx, eax
or edx, 0xf4708184
add edx, ecx
mov ecx, eax
not ecx
add ecx, edx
and eax, 0xb8f7e7b
lea edx, [ecx + eax]
add eax, ecx
add eax, 0xf4708187
not eax
mov ecx, eax
and ecx, 0x532986ba
add ecx, edx
add ecx, 0xf4708187
or eax, 0xacd67945
sub ecx, eax
lea eax, [ecx + 0x59acf28a]
xor eax, 0xb8f7e7b
lea eax, [eax + ecx*2]
add eax, 0xb359e514
add ecx, ecx
add ecx, 0xb359e514
or ecx, 0x171efcf6
sub eax, ecx
add eax, 0x171efcf6
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x18]
mov dword [eax], ecx
mov eax, dword [0x1007eaf0]
mov ecx, dword [0x1007eaf4]
mov edx, eax
and edx, ecx
add edx, edx
mov edi, eax
xor edi, ecx
sub ecx, edx
not edi
add edi, ecx
add eax, edi
add eax, 0x567246a
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10017447
mov eax, dword [esi + 0x50]
cmp byte [eax], 0
mov ecx, 0x6cb23a37
mov eax, 0xad9601c5
cmovne ecx, eax
mov dword [esi + 4], ecx
mov edi, dword [0x1007e938]
mov dword [esi + 8], edi
mov ecx, dword [0x1007e93c]
mov eax, ecx
not eax
mov edx, edi
and edx, eax
add edx, edi
or ecx, edi
sub edx, ecx
sub edx, eax
cmp dword [0x10088a98], 0xa
setl byte [esi + 0x10]
setge byte [esi + 0x18]
mov eax, dword [0x10088a94]
lea edi, [eax + 1]
imul edi, eax
mov ecx, dword [0x1007e948]
mov ebx, dword [0x1007e94c]
mov eax, ecx
or eax, ebx
not eax
add eax, ebx
not ecx
or ecx, ebx
sub eax, ecx
and edi, 1
cmp edi, eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov eax, dword [esi + 8]
not eax
lea eax, [edx + eax + 0x5672469]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
sete al
and al, byte [esi + 0x18]
add al, byte [esi + 0x10]
mov ecx, dword [esi + 0x38]
mov dword [ecx], 0
test al, 1
jne 0x10019100
mov eax, dword [esi + 0x50]
cmp byte [eax], 0
mov eax, 0x6cb23a37
mov ecx, 0xad9601c5
cmovne eax, ecx
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [0x1007ead0]
mov edx, dword [0x1007ead4]
mov ecx, edx
not ecx
mov edi, eax
and edi, ecx
not eax
and edx, eax
sub edi, edx
sub edi, ecx
add eax, edi
add eax, 0x5672469
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0x38]
mov dword [eax], 0
jmp 0x10017a03
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007e8c4]
mov edx, ecx
not edx
add ecx, edx
add ecx, 0x90790137
cmp eax, ecx
mov eax, 0xccf18f05
mov ecx, 0xa8d84190
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [0x10088a90]
cmp dword [0x10088a8c], 0xa
setl cl
lea edx, [eax + 3]
imul edx, eax
test dl, 1
sete al
or al, cl
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0x90790136
mov eax, 0xccf18f05
mov ecx, 0xa8d84190
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10017af1
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0x6cb23a37
mov ecx, 0xccf18f05
mov eax, 0x19f04bb5
cmove ecx, eax
mov dword [esi + 8], ecx
mov ecx, dword [0x1007e7b0]
mov edx, dword [0x1007e7b4]
mov eax, ecx
xor eax, edx
add eax, ecx
add eax, edx
or ecx, edx
add ecx, ecx
sub eax, ecx
add eax, 0xa
cmp dword [0x10088a88], eax
mov eax, dword [0x10088a84]
setge dh
setl dl
lea edi, [eax + 1]
imul edi, eax
mov ebx, dword [0x1007e7b8]
mov eax, dword [0x1007e7bc]
mov dword [esi + 4], eax
mov ecx, ebx
xor ecx, eax
mov eax, ebx
sub eax, ecx
mov ecx, dword [esi + 4]
not ecx
or ecx, ebx
sub eax, ecx
and ebx, dword [esi + 4]
not ebx
add ebx, eax
and edi, 1
cmp edi, ebx
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [eax], ecx
sete al
mov ecx, edx
and cl, al
add cl, dl
and dh, al
add dh, cl
mov ecx, edx
xor cl, al
add cl, dh
or dl, al
add dl, cl
test dl, 1
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0x6cb23a37
mov eax, 0xccf18f05
mov ecx, 0x19f04bb5
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10017b5d
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x3c]
mov dword [eax], edi
mov eax, dword [eax]
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.GetFileSizeEx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov ecx, dword [esi + 0x28]
push dword [ecx]
call eax
mov dword [esi + 0x10], eax
mov ecx, dword [0x1007e67c]
mov dword [esi + 4], ecx
mov eax, ecx
not eax
lea edx, [ecx + ecx]
sub edx, edx
or edx, eax
mov edi, dword [0x1007e678]
xor edx, edi
mov ebx, edx
not ebx
mov eax, ebx
and eax, edi
mov ecx, edx
and ecx, edi
add ecx, ecx
mov dword [esi + 8], eax
sub dword [esi + 8], ecx
xor ebx, edi
mov ecx, dword [esi + 8]
lea ecx, [ecx + ebx*2]
lea ecx, [ecx + edx*2]
not eax
add eax, eax
sub eax, ecx
lea ecx, [eax - 0x79c60b56]
not ecx
lea eax, [ecx + eax*2]
add eax, 0x8639f4aa
mov dword [esi + 8], eax
mov eax, edi
not eax
lea ebx, [eax + eax]
sub ebx, eax
mov eax, edi
xor eax, 0x99cd6dfe
add eax, edi
or edi, 0x99cd6dfe
sub eax, edi
and ebx, 0x99cd6dfe
or eax, ebx
mov ecx, eax
and ecx, 0x66329201
add ecx, ecx
mov edi, eax
xor edi, 0x66329201
sub edi, ecx
mov ecx, eax
xor ecx, 0x99cd6dfe
add ecx, edi
add eax, ecx
add eax, 0x66329202
mov ebx, eax
mov edx, dword [esi + 4]
and ebx, edx
mov edi, eax
xor edi, edx
mov ecx, eax
or ecx, edx
not ecx
add ecx, ebx
add ecx, edi
add ebx, ecx
add ebx, 1
not eax
mov ecx, eax
mov edx, dword [esi + 4]
and ecx, edx
add ecx, edi
not edi
add edi, ecx
or eax, edx
sub edi, eax
mov eax, edi
not eax
and eax, ebx
sub eax, ebx
mov ecx, ebx
or ecx, edi
lea eax, [eax + ecx*2]
not ecx
add ecx, eax
and edi, ebx
lea edx, [ecx + edi]
lea eax, [edi + ecx]
add eax, 1
mov ebx, dword [esi + 8]
mov ecx, ebx
not ecx
mov edi, ecx
and edi, eax
sub edi, ebx
add edx, edi
add edx, 1
not eax
add edx, eax
or eax, ecx
sub eax, edx
lea ecx, [eax + 1]
add eax, eax
add eax, 2
sub ecx, eax
mov eax, ecx
xor eax, 1
add eax, ecx
xor ecx, 0xfffffffe
add ecx, eax
imul eax, ecx, 0x3630fc5d
mov ecx, 0xa9f53e47
sub ecx, eax
mov eax, ecx
not eax
lea edx, [eax + eax]
sub edx, ecx
sub edx, eax
sub edx, eax
imul eax, edx, 0x11e7480b
mov edx, eax
and edx, 0x301ea50a
add edx, edx
lea ecx, [eax + eax]
sub ecx, edx
not eax
mov edx, eax
or edx, 0xcfe15af5
sub ecx, edx
or eax, 0x301ea50a
add eax, ecx
add eax, 0x301ea50b
cmp dword [esi + 0x10], eax
mov eax, 0xd81029a4
mov ecx, 0x4b7d7595
cmove eax, ecx
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [0x1007e968]
mov ecx, dword [0x1007e96c]
mov edx, eax
xor edx, ecx
add edx, eax
mov edi, eax
or edi, ecx
sub edx, edi
not eax
or eax, ecx
add eax, edx
add eax, 0xb
cmp dword [0x10088a80], eax
mov edx, dword [0x10088a7c]
setge al
setl cl
lea ebx, [edx - 1]
imul ebx, edx
test bl, 1
sete dl
mov ah, cl
or ah, dl
add ah, dl
xor cl, dl
not cl
add cl, ah
add cl, al
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov eax, dword [esi + 0xc]
mov dword [eax], 0x5672469
test cl, 1
jne 0x10019100
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x3c]
mov dword [eax], edi
mov eax, dword [eax]
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.GetFileSizeEx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov ecx, dword [esi + 0x28]
push dword [ecx]
call eax
mov dword [esi + 4], eax
mov edx, dword [0x1007e678]
mov edi, dword [0x1007e67c]
mov dword [esi + 8], edi
mov eax, edx
xor eax, edi
mov ecx, edx
or ecx, edi
sub eax, ecx
not ecx
add ecx, ecx
sub eax, ecx
not edi
or edi, edx
add edi, eax
mov ebx, edx
not ebx
add edi, ebx
mov ecx, edi
and ecx, edx
mov eax, edi
and eax, ebx
sub ecx, eax
mov eax, edi
xor eax, edx
add ecx, eax
not eax
add eax, ecx
not edi
or edi, edx
sub eax, edi
lea ecx, [eax - 1]
and ecx, 0x8639f4aa
sub ecx, eax
mov edi, eax
neg edi
or edi, 0x79c60b55
add edi, ecx
lea eax, [ebx + ebx]
add ebx, eax
sub ebx, eax
mov eax, ebx
or eax, 0x99cd6dfe
lea ecx, [ebx + ebx]
sub ecx, eax
not ebx
lea eax, [ebx + ecx]
add eax, 0x99cd6dff
and edx, 0x66329201
or edx, eax
mov eax, edx
xor eax, 0x66329201
not edx
mov ebx, edx
and ebx, 0x99cd6dfe
add ebx, eax
or edx, 0x66329201
sub ebx, edx
add ebx, 0x66329201
mov edx, ebx
mov eax, dword [esi + 8]
and edx, eax
xor ebx, eax
mov ecx, ebx
not ecx
and ecx, edx
mov eax, edx
or eax, ebx
sub eax, ecx
not edx
or edx, ebx
not edx
add edx, eax
not edi
lea eax, [edx + edx]
lea ecx, [eax + edi*2]
mov eax, edi
xor eax, edx
add eax, ecx
or edi, edx
add edi, edi
sub eax, edi
lea ecx, [eax + eax*2]
add ecx, 3
add eax, eax
add eax, 2
sub eax, ecx
imul eax, eax, 0xc9cf03a3
lea ecx, [eax + eax]
sub eax, ecx
imul eax, eax, 0xee18b7f5
cmp dword [esi + 4], eax
mov eax, 0xd81029a4
mov ecx, 0x4b7d7595
cmove eax, ecx
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov eax, dword [esi + 0xc]
mov dword [eax], 0x5672469
jmp 0x10017c1f
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0xd81029a4
mov eax, 0x4fcf9de0
mov ecx, 0x9eec975f
cmovl eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [0x1007e850]
mov ecx, dword [0x1007e854]
mov edx, eax
xor edx, ecx
add edx, eax
mov edi, eax
or edi, ecx
sub edx, edi
not eax
or eax, ecx
mov edi, dword [0x10088a78]
add eax, edx
add eax, 0xb
cmp dword [0x10088a74], eax
setge al
setl cl
lea edx, [edi + 1]
imul edx, edi
test dl, 1
sete dl
mov ah, cl
or ah, dl
add ah, dl
xor cl, dl
not cl
add cl, ah
add cl, al
test cl, 1
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007eaa0]
mov edx, dword [0x1007eaa4]
mov edi, ecx
xor edi, edx
mov ebx, edx
not ebx
or ebx, ecx
add ebx, edi
mov edi, ecx
not edi
add edi, ebx
and ecx, edx
add ecx, edi
add ecx, 0xd81029a6
cmp eax, ecx
mov eax, 0x4fcf9de0
mov ecx, 0x9eec975f
cmovl eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10017f6d
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov eax, dword [0x1007e710]
mov ecx, dword [0x1007e714]
mov edi, eax
or edi, ecx
sub edi, ecx
sub edi, ecx
add edi, ecx
not eax
or eax, ecx
add eax, edi
add eax, 0xb
cmp dword [0x10088a70], eax
mov eax, dword [0x10088a6c]
setl cl
lea edx, [eax - 1]
imul edx, eax
test dl, 1
sete al
or al, cl
mov eax, dword [esi + 0xc]
mov dword [eax], 0xe49f1290
jne 0x10019100
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov eax, dword [0x1007ea60]
mov ecx, dword [0x1007ea64]
mov edx, eax
not edx
and edx, ecx
not ecx
or ecx, eax
lea eax, [edx + ecx]
add eax, 0xe49f1291
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10018024
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0xc2d353e
mov ecx, 0x439a83f0
mov eax, 0x8c62a5d2
cmovl ecx, eax
mov dword [esi + 4], ecx
mov ecx, dword [0x1007e738]
mov edx, dword [0x1007e73c]
mov eax, ecx
not eax
and eax, edx
and ecx, edx
not edx
add edx, eax
mov ebx, dword [0x10088a68]
lea eax, [ecx + edx]
add eax, 0xb
cmp dword [0x10088a64], eax
setl cl
setge ch
mov eax, ebx
not eax
mov edx, eax
and edx, 1
add edx, edx
mov edi, ebx
sub edi, edx
add edi, eax
add eax, edi
add eax, 0xffffffff
imul eax, ebx
mov dword [esi + 8], eax
mov eax, dword [0x1007e744]
mov edi, eax
not edi
mov edx, dword [0x1007e740]
mov ebx, edx
and ebx, edi
not edx
and eax, edx
sub ebx, eax
sub ebx, edi
add ebx, edx
mov eax, dword [esi + 8]
and eax, 1
cmp eax, ebx
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov dword [eax], edx
sete al
mov dl, ch
and dl, al
or cl, al
add dl, cl
not cl
add cl, dl
add cl, ch
test cl, 1
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007ea6c]
mov edx, ecx
not edx
add ecx, edx
add ecx, 0xc2d353f
cmp eax, ecx
mov eax, 0x439a83f0
mov ecx, 0x8c62a5d2
cmovl eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x100180a8
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007e758]
mov edx, ecx
not edx
add ecx, edx
add ecx, 0x4b7d7596
cmp eax, ecx
mov ecx, 0xd086bd6e
mov eax, 0x17933e41
cmovl ecx, eax
mov dword [esi + 4], ecx
mov ecx, dword [0x1007e760]
mov edx, dword [0x1007e764]
mov edi, ecx
or edi, edx
mov ebx, edi
not ebx
lea edi, [edi + ebx*2]
not edx
or edx, ecx
sub edx, edi
mov ebx, dword [0x10088a60]
not ecx
add ecx, edx
add ecx, 0xa
cmp dword [0x10088a5c], ecx
setge cl
setl ch
mov edi, ebx
not edi
add edi, ebx
add edi, ebx
imul edi, ebx
mov eax, dword [0x1007e768]
mov ebx, eax
not ebx
mov edx, dword [0x1007e76c]
and ebx, edx
and eax, edx
not edx
add edx, ebx
add eax, edx
add eax, 1
and edi, 1
cmp edi, eax
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov dword [eax], edx
sete al
setne dl
and dl, ch
or ch, al
add ch, dl
or cl, al
add cl, ch
add cl, 1
test cl, 1
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0x4b7d7595
mov eax, 0xd086bd6e
mov ecx, 0x17933e41
cmovl eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10018185
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0x6cb23a37
mov eax, 0xdadfccfd
mov ecx, 0x8365a61a
cmovl eax, ecx
cmp dword [0x10088a58], 0xa
mov edi, dword [0x10088a54]
setl byte [esi + 4]
lea edx, [edi - 1]
imul edx, edi
mov edi, dword [0x1007e790]
mov ebx, edi
not ebx
mov ecx, dword [0x1007e794]
and ebx, ecx
add ebx, edi
or edi, ecx
sub ebx, edi
and edx, 1
cmp edx, ebx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
sete al
or al, byte [esi + 4]
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007ea78]
mov edx, dword [0x1007ea7c]
mov edi, ecx
or edi, edx
sub edi, edx
sub edi, edx
add edi, edx
not ecx
or ecx, edx
add ecx, edi
add ecx, 0x6cb23a38
cmp eax, ecx
mov eax, 0xdadfccfd
mov ecx, 0x8365a61a
cmovl eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10018255
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007e7d0]
mov edx, ecx
not edx
add ecx, edx
add ecx, 0x4b7d7596
cmp eax, ecx
mov eax, 0xccf18f05
mov ecx, 0x84d9cc4b
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov ecx, dword [0x1007e7d8]
mov edx, dword [0x1007e7dc]
mov eax, ecx
and eax, edx
mov edi, edx
not edi
and edi, ecx
mov ebx, eax
sub ebx, edi
not ecx
or ecx, edx
sub ebx, ecx
mov edx, dword [0x10088a50]
not eax
add eax, ebx
add eax, 0xa
mov ecx, edx
cmp dword [0x10088a4c], eax
not ecx
setl al
mov edi, edx
xor edi, 1
add edi, edx
and ecx, 0xfffffffe
add ecx, edi
mov edi, edx
and edi, 1
add ecx, edi
add ecx, 2
imul ecx, edx
test cl, 1
sete dl
mov ah, al
and ah, cl
mov dh, al
or dh, dl
xor dl, al
or al, cl
add dh, ah
not dl
add dl, dh
add al, dl
test al, 1
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0x4b7d7595
mov eax, 0xccf18f05
mov ecx, 0x84d9cc4b
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x100182f1
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007e7f8]
mov edi, dword [0x1007e7fc]
mov edx, ecx
not edx
mov ebx, edx
and ebx, edi
xor ecx, edi
not ecx
add ecx, ebx
or edx, edi
sub ecx, edx
add ecx, 0xc2d353e
cmp eax, ecx
mov eax, 0xccf18f05
mov ecx, 0x51af4902
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [0x1007e800]
mov ecx, dword [0x1007e804]
mov edx, ecx
not edx
and edx, eax
sub edx, eax
mov edi, eax
or edi, ecx
add edx, edi
not edi
add edi, edx
and eax, ecx
add eax, edi
add eax, 0xb
cmp dword [0x10088a48], eax
mov eax, dword [0x10088a44]
setl cl
mov edx, 0xfa61c729
sub edx, eax
imul edx, eax
test dl, 1
sete al
or al, cl
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007ea90]
and ecx, dword [0x1007ea94]
mov edx, ecx
not edx
add edx, edx
lea ecx, [edx + ecx*2]
mov edx, 0xc2d353c
sub edx, ecx
cmp eax, edx
mov eax, 0xccf18f05
mov ecx, 0x51af4902
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x100183b2
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007e820]
xor ecx, dword [0x1007e824]
mov edx, ecx
not edx
add ecx, edx
add ecx, 0xad9601c6
cmp eax, ecx
mov eax, 0x3d8f1a8f
mov ecx, 0xbe06e2cd
cmovl eax, ecx
mov ecx, dword [0x1007e828]
mov edx, dword [0x1007e82c]
mov edi, ecx
xor edi, edx
mov ebx, ecx
not ebx
or ebx, edx
and ecx, edx
not edx
add edx, edi
add ebx, edx
mov edi, dword [0x10088a40]
add ecx, ebx
add ecx, 0xc
cmp dword [0x10088a3c], ecx
setl byte [esi + 4]
mov edx, edi
not edx
add edx, 0x91f9e540
imul edx, edi
mov edi, dword [0x1007e834]
not edi
mov ecx, dword [0x1007e830]
mov ebx, ecx
and ebx, edi
sub ebx, edi
or edi, ecx
add edi, ebx
sub edi, ecx
and edx, 1
cmp edx, edi
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
sete al
or al, byte [esi + 4]
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0xad9601c5
mov eax, 0x3d8f1a8f
mov ecx, 0xbe06e2cd
cmovl eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10018473
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov edi, dword [0x1007e870]
mov ecx, dword [0x1007e874]
mov edx, edi
xor edx, ecx
lea ebx, [edi + edx*2]
or edi, ecx
add edi, edi
sub ebx, edi
not edx
add edx, ebx
add ecx, edx
add ecx, 0xd81029a5
cmp eax, ecx
mov ecx, 0xccf18f05
mov eax, 0xfe846013
cmove ecx, eax
mov dword [esi + 4], ecx
mov ecx, dword [0x1007e878]
mov edx, dword [0x1007e87c]
mov edi, ecx
xor edi, edx
mov ebx, edx
not ebx
or ebx, ecx
add ebx, edi
mov edi, ecx
not edi
add edi, ebx
and ecx, edx
mov ebx, dword [0x10088a38]
add ecx, edi
add ecx, 0xc
cmp dword [0x10088a34], ecx
setl byte [esi + 8]
lea edx, [ebx + 1]
imul edx, ebx
mov ecx, dword [0x1007e880]
mov ebx, dword [0x1007e884]
mov edi, ecx
xor edi, ebx
add edi, ecx
add edi, ebx
or ecx, ebx
add ecx, ecx
sub edi, ecx
and edx, 1
cmp edx, edi
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
sete al
or al, byte [esi + 8]
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
cmp eax, 0xd81029a4
mov eax, 0xccf18f05
mov ecx, 0xfe846013
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10018530
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007e898]
mov edx, dword [0x1007e89c]
mov edi, ecx
xor edi, edx
add edi, edx
or edx, ecx
not edx
lea edx, [edi + edx*2]
not ecx
sub ecx, edx
add ecx, 0xad9601c4
cmp eax, ecx
mov eax, 0xccf18f05
mov ecx, 0xe0687586
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov ecx, dword [0x1007e8a0]
mov edx, dword [0x1007e8a4]
mov eax, ecx
or eax, edx
not eax
add eax, edx
not ecx
or ecx, edx
sub eax, ecx
mov ecx, dword [0x10088a30]
add eax, 0xa
cmp dword [0x10088a2c], eax
setl al
lea edx, [ecx - 1]
imul edx, ecx
test dl, 1
sete cl
or cl, al
jne 0x10019100
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ecx, dword [0x1007eab0]
xor ecx, dword [0x1007eab4]
mov edx, ecx
not edx
add ecx, edx
add ecx, 0xad9601c6
cmp eax, ecx
mov eax, 0xccf18f05
mov ecx, 0xe0687586
cmove eax, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x100185fb
mov eax, dword [0x1007e8e8]
xor eax, dword [0x1007e8ec]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb92340de
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
cmp dword [0x10088a28], 0xa
mov edi, dword [0x10088a24]
setge ch
setl cl
mov edx, edi
not edx
add edx, edi
add edx, edi
add edx, 0x2d12dbd8
imul edx, edi
mov ebx, dword [0x1007e8f8]
mov dword [esi + 4], ebx
not ebx
mov eax, dword [0x1007e8fc]
and ebx, eax
add ebx, ebx
mov edi, dword [esi + 4]
xor edi, eax
sub edi, ebx
add edi, eax
sub edi, dword [esi + 4]
and edx, 1
cmp edx, edi
sete al
setne dl
mov ah, cl
and ah, dl
mov dh, ch
and dh, al
or dh, ah
or cl, al
add cl, dh
add cl, dl
add cl, ch
test cl, 1
jne 0x10019100
mov eax, dword [0x1007eac0]
mov ecx, dword [0x1007eac4]
mov edx, eax
not edx
and edx, ecx
and eax, ecx
not ecx
add ecx, edx
add eax, ecx
add eax, 0xb92340de
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x100186ad
mov eax, dword [0x1007e918]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x10088a20], eax
mov edi, dword [0x10088a1c]
setl byte [esi + 4]
setge byte [esi + 8]
mov edx, edi
or edx, 1
mov ecx, edi
sub ecx, edx
not edx
add edx, edx
sub ecx, edx
add ecx, edi
mov edx, edi
not edx
add edx, ecx
add edx, 0xffffffff
imul edx, edi
mov eax, dword [0x1007e924]
mov dword [esi + 0x10], eax
mov edi, eax
not edi
mov ecx, dword [0x1007e920]
and edi, ecx
mov ebx, ecx
xor ebx, eax
mov eax, ebx
sub eax, edi
not ebx
add ebx, eax
not ecx
or ecx, dword [esi + 0x10]
sub ebx, ecx
and edx, 1
cmp edx, ebx
setne al
sete cl
mov ah, byte [esi + 8]
and ah, cl
mov ch, byte [esi + 4]
mov dl, ch
or dl, cl
add dl, ah
add dl, al
and ch, cl
not ch
add ch, dl
mov eax, dword [esi + 0xc]
mov dword [eax], 0x5672469
test ch, 1
jne 0x10019100
mov eax, dword [0x1007eac8]
mov ecx, dword [0x1007eacc]
mov edx, eax
not edx
mov edi, edx
and edi, ecx
add edi, edi
xor eax, ecx
sub eax, edi
add eax, ecx
add eax, edx
add eax, 0x567246a
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x1001875a
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x3c]
mov dword [eax], ecx
mov eax, dword [eax]
push dword [eax]
call fcn.1006c6a0
add esp, 4
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
cmp dword [ecx], 0
mov ecx, 0xc2d353e
mov eax, 0x4b7d7595
cmove ecx, eax
mov dword [esi + 4], ecx
mov edi, dword [0x1007e988]
mov eax, dword [0x1007e98c]
mov dword [esi + 8], eax
mov ecx, edi
xor ecx, eax
lea ebx, [edi + ecx*2]
or edi, eax
add edi, edi
sub ebx, edi
not ecx
add ecx, ebx
mov dword [esi + 0x10], ecx
mov edi, dword [0x1007e990]
mov ecx, dword [0x1007e994]
mov eax, edi
xor eax, ecx
mov ebx, ecx
not ebx
or ebx, edi
add ebx, eax
mov eax, edi
not eax
add eax, ebx
and edi, ecx
add eax, edi
add eax, 0xc
cmp dword [0x10088a18], eax
mov eax, dword [0x10088a14]
setl byte [esi + 0x18]
lea edi, [eax + 1]
imul edi, eax
mov ebx, dword [0x1007e998]
mov eax, dword [0x1007e99c]
mov ecx, ebx
xor ecx, eax
add ecx, ebx
add ecx, eax
or ebx, eax
add ebx, ebx
sub ecx, ebx
and edi, 1
cmp edi, ecx
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
lea eax, [eax + ecx + 0x567246a]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
sete al
or al, byte [esi + 0x18]
mov eax, dword [esi + 0x24]
mov dword [eax], 0
jne 0x10019100
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x3c]
mov dword [eax], ecx
mov eax, dword [eax]
push dword [eax]
call fcn.1006c6a0
add esp, 4
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
cmp dword [ecx], 0
mov eax, 0xc2d353e
mov ecx, 0x4b7d7595
cmove eax, ecx
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [0x1007eae0]
mov ecx, dword [0x1007eae4]
mov edx, eax
and edx, ecx
add edx, edx
mov edi, eax
xor edi, ecx
sub ecx, edx
not edi
add edi, ecx
add eax, edi
add eax, 0x567246a
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0x24]
mov dword [eax], 0
jmp 0x1001881f
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.aVRWuZ_V3cLOSEhANDLE_AZUwfTvw_BsfzE
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [esi + 0x44]
mov ecx, dword [edi]
push 0
push dword [esi + 0x4c]
push dword [ecx]
mov ecx, dword [esi + 0x2c]
push dword [ecx]
mov ecx, dword [esi + 0x28]
push dword [ecx]
call eax
mov eax, dword [edi]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov ecx, dword [0x1007e680]
mov edx, dword [0x1007e684]
mov dword [esi + 8], edx
mov eax, ecx
mov edi, ecx
mov dword [esi + 0x10], ecx
not eax
mov dword [esi + 0x30], eax
mov ecx, edx
not ecx
or eax, ecx
mov edx, ecx
mov dword [esi + 4], ecx
not eax
lea ecx, [eax + eax]
shl eax, 2
sub ecx, eax
lea eax, [ecx + ecx]
not ecx
add ecx, eax
mov eax, edi
or eax, edx
mov edi, eax
not edi
lea edi, [eax + edi*2]
not ecx
lea eax, [ecx + ecx]
sub ecx, eax
mov ebx, edi
not ebx
mov eax, ecx
not eax
and eax, ebx
add eax, ecx
sub eax, edi
or ebx, ecx
not ebx
add ebx, eax
add ebx, ecx
mov ecx, dword [esi + 0x10]
mov eax, ecx
mov edi, dword [esi + 8]
and eax, edi
xor ecx, edi
or ecx, eax
mov eax, ecx
not eax
lea edx, [ecx + eax*2]
add edx, 1
mov edi, edx
not edi
or edi, edx
and edx, 0x5e43bc43
and edi, 0x5e43bc43
add edx, edi
add edx, 0x21bc43bd
or eax, 0x21bc43bc
add ecx, eax
add ecx, 1
or ecx, edx
mov edx, ebx
neg edx
mov eax, edx
and eax, 0x340572ac
sub eax, ebx
sub eax, ebx
or edx, 0xcbfa8d53
sub eax, edx
add eax, ebx
xor ecx, 0x21bc43bc
lea edx, [eax + ecx*2]
mov dword [esi + 0x18], edx
lea eax, [eax + ecx*2]
add eax, 0xcbfa8d53
mov dword [esi + 0x1c], eax
mov edi, dword [esi + 0x30]
mov eax, edi
and eax, 0x8f2a15a7
mov edx, dword [esi + 0x10]
mov ecx, edx
and ecx, 0x70d5ea58
or ecx, eax
mov dword [esi + 0x34], ecx
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
lea ebx, [eax + ecx*2]
add ebx, eax
sub ebx, ecx
add ebx, 1
mov eax, ebx
not eax
mov ecx, ebx
and ecx, 0xf2a15a7
and eax, 0x70d5ea58
lea eax, [eax + ecx*2]
xor ebx, 0x8f2a15a7
lea ecx, [ebx + eax]
add ecx, 1
mov dword [esi + 0x48], ecx
add ebx, eax
mov ecx, edx
mov eax, edx
and eax, 0xf6663850
xor ecx, 0x999c7af
sub ecx, eax
sub ecx, edi
and edi, 0x999c7af
add ecx, 0xf6663850
mov eax, edi
or eax, ecx
mov edx, ecx
lea ecx, [eax + eax*2]
not eax
lea ecx, [ecx + eax*4]
mov eax, edi
xor eax, edx
not eax
add eax, eax
sub ecx, eax
and edx, edi
not edx
add edx, edx
sub ecx, edx
mov eax, ecx
not eax
mov edx, ecx
xor edx, 0x76663850
and eax, 0x999c7af
lea eax, [eax + edx*2]
mov dword [esi + 0x10], eax
and ecx, 0xf6663850
mov dword [esi + 0x30], ecx
lea edi, [ecx + eax]
add edi, 1
mov edx, edi
mov ecx, dword [esi + 8]
and edx, ecx
mov dword [esi + 0x5c], edx
mov eax, dword [esi + 4]
and eax, edi
mov dword [esi + 4], eax
or edx, eax
sub edx, edi
mov dword [esi + 0x58], edx
mov eax, edi
or eax, ecx
mov dword [esi + 0x54], eax
xor edi, ecx
and ecx, 0x70d5ea58
add ebx, ecx
add ebx, 1
mov edx, dword [esi + 0x48]
mov eax, edx
xor eax, ecx
add eax, ebx
or ecx, edx
sub eax, ecx
xor eax, dword [esi + 0x34]
mov ecx, eax
not ecx
lea ebx, [ecx + ecx]
lea ebx, [ebx + eax*2]
add ebx, 2
or ecx, ebx
or eax, ebx
not ebx
lea ecx, [ebx + ecx*2]
mov edx, dword [esi + 0x18]
add edx, edx
add edx, 0x97f51aa6
sub edx, dword [esi + 0x1c]
mov dword [esi + 0x18], edx
lea ebx, [ecx + eax]
mov dword [esi + 8], ebx
add ecx, eax
add ecx, 1
mov ebx, 0xfffffffe
sub ebx, dword [esi + 8]
mov dword [esi + 0x1c], ebx
lea eax, [edx - 0x7e0422a0]
mov edx, eax
and edx, ebx
and ecx, eax
mov ebx, ecx
mov ecx, edx
sub ecx, ebx
mov ebx, dword [esi + 0x18]
add ecx, ebx
add ecx, 0x81fbdd60
sub ecx, dword [esi + 8]
not eax
or eax, dword [esi + 0x1c]
sub ecx, eax
not edx
lea eax, [ecx + edx]
add ecx, edx
add ecx, 0xfffffffe
mov edx, ecx
xor edx, 0x81fbdd60
add eax, edx
add eax, 0xfffffffe
mov edx, ecx
not edx
and edx, 0x7e04229f
add edx, eax
and ecx, 0x81fbdd60
lea ebx, [ecx + edx]
add ebx, 0x7e0422a0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x30]
add eax, ecx
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x54]
add ecx, edx
not edx
add edx, ecx
mov ecx, edx
mov edx, dword [esi + 0x5c]
add ecx, edx
add ecx, 1
mov dword [esi + 8], ecx
mov ecx, dword [esi + 4]
add ecx, ecx
lea edx, [ecx + edx*2]
add eax, eax
add eax, 2
sub eax, edx
add edi, eax
or edi, dword [esi + 8]
mov eax, ebx
not eax
mov ecx, ebx
and ecx, edi
add ecx, ecx
sub ebx, ecx
add ebx, edi
or eax, edi
lea ecx, [ebx + eax*2]
lea eax, [ebx + eax*2]
add eax, 1
add ecx, ecx
add ecx, 2
sub eax, ecx
lea ecx, [eax + eax]
sub eax, ecx
imul eax, eax, 0xe2324e19
add eax, 0xe5d21e73
mov ecx, eax
not ecx
lea edx, [ecx + ecx]
sub edx, eax
sub edx, ecx
sub edx, ecx
mov eax, edx
and eax, 0xd158d68e
add eax, edx
or edx, 0x2ea72971
sub eax, edx
imul eax, eax, 0xf6512e29
add eax, 0x34f8f119
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, dword [0x10088a10]
cmp dword [0x10088a0c], 0xa
setl cl
mov edx, eax
not edx
mov ebx, edx
and ebx, 0x7ffffffe
add ebx, ebx
mov edi, eax
sub edi, ebx
add edi, eax
add edx, edi
add edx, 0xa8868da0
imul edx, eax
mov eax, dword [0x1007e9c0]
mov edi, eax
not edi
mov ebx, dword [0x1007e9c4]
and edi, ebx
not ebx
or ebx, eax
lea eax, [edi + ebx]
add eax, 1
and edx, 1
cmp edx, eax
mov eax, dword [esi + 0x24]
mov edx, dword [esi + 4]
mov dword [eax], edx
sete al
or al, cl
mov eax, dword [esi + 0xc]
mov dword [eax], 0x5672469
jne 0x10019100
push 0x10085110
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.aVRWuZ_V3cLOSEhANDLE_AZUwfTvw_BsfzE
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, dword [esi + 0x44]
mov ecx, dword [edi]
push 0
push dword [esi + 0x4c]
push dword [ecx]
mov ecx, dword [esi + 0x2c]
push dword [ecx]
mov ecx, dword [esi + 0x28]
push dword [ecx]
call eax
mov eax, dword [edi]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov ecx, dword [0x1007e680]
mov dword [esi + 8], ecx
mov eax, ecx
not eax
mov dword [esi + 0x18], eax
add ecx, ecx
mov edx, eax
sub edx, ecx
sub edx, eax
sub edx, eax
mov eax, dword [0x1007e684]
mov edi, eax
mov ebx, eax
mov dword [esi + 4], eax
not edi
mov dword [esi + 0x10], edi
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, edi
mov edi, dword [esi + 0x18]
and edi, ebx
sub ecx, edi
mov ebx, eax
xor ebx, dword [esi + 4]
add ebx, ecx
mov edi, eax
or edi, dword [esi + 4]
not edi
add edi, ebx
add edx, 0xfffffffe
mov eax, dword [esi + 0x10]
lea ecx, [eax + eax]
sub edi, ecx
sub ecx, eax
mov ebx, edx
not ebx
mov eax, ebx
and eax, ecx
mov dword [esi + 0x1c], eax
mov eax, edx
or eax, ecx
add eax, dword [esi + 0x1c]
xor edx, ecx
not edx
add edx, eax
or ebx, ecx
sub edx, ebx
not edx
lea eax, [edx + edx]
sub eax, edx
mov dword [esi + 0x1c], eax
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 8]
lea ecx, [edx + eax]
lea ecx, [edx + ecx + 1]
not ecx
mov edx, ecx
mov eax, dword [esi + 0x10]
and edx, eax
mov ebx, ecx
or ebx, eax
add ebx, edx
mov edx, dword [esi + 4]
add ebx, edx
or ecx, edx
sub ebx, ecx
mov ecx, ebx
not ecx
add ebx, ecx
add ebx, ecx
mov eax, dword [esi + 0x1c]
lea eax, [ebx + eax*2]
mov ecx, eax
not ecx
lea edx, [eax + eax]
lea ecx, [edx + ecx*2]
sub eax, ecx
mov ecx, dword [esi + 8]
and ecx, dword [esi + 4]
mov edx, ecx
not edx
add edi, edx
xor edx, ecx
and edx, edi
xor edx, ecx
mov ebx, ecx
xor ebx, edi
sub edx, ebx
or edi, ecx
add edi, edx
mov ecx, edi
not ecx
add ecx, ecx
add ecx, edi
add ecx, 1
mov edx, ecx
and edx, 0xde43bc43
not ecx
mov ebx, ecx
and ebx, 0x21bc43bc
or ebx, edx
or ecx, 0xde43bc43
sub ebx, ecx
mov edx, edi
and edx, 0x21bc43bc
add edx, edi
mov ecx, edi
xor ecx, 0x21bc43bc
add ecx, edx
add edi, edi
or edi, 0x43788778
sub ecx, edi
add ebx, 0xde43bc43
add ecx, 0x21bc43bc
mov edx, ebx
and edx, ecx
mov edi, ebx
or edi, ecx
lea edx, [edi + edx*2]
not ebx
lea edi, [edx + ebx*2]
or ebx, ecx
add ebx, ebx
sub edi, ebx
mov ecx, edi
and ecx, 0x21bc43bc
add ecx, ecx
mov edx, edi
xor edx, 0x21bc43bc
sub edx, ecx
mov ebx, edi
xor ebx, 0xde43bc43
add ebx, edx
add ebx, edi
mov ecx, eax
neg ecx
and ecx, 0x340572ac
lea ecx, [ecx + eax*2]
add ecx, 0xfffffffe
add eax, 0xffffffff
or eax, 0x340572ac
sub ecx, eax
lea eax, [ebx + ebx]
add eax, 0x4378877a
lea edx, [ecx + ebx*4]
add edx, 0x52eb9c47
add ecx, 0xcbfa8d53
mov edi, ecx
or edi, eax
not edi
add edi, edx
not ecx
or ecx, eax
sub edi, ecx
mov eax, edi
xor eax, 0xcbfa8d53
mov ecx, edi
sub ecx, eax
not edi
mov dword [esi + 0x1c], edi
mov eax, edi
and eax, 0x340572ac
add eax, eax
sub ecx, eax
mov dword [esi + 0x34], ecx
mov edx, dword [esi + 8]
mov eax, edx
and eax, 0x999c7af
mov edi, dword [esi + 0x18]
mov ecx, edi
sub ecx, eax
lea ebx, [edx + ecx]
add ebx, 0x999c7b0
mov eax, edx
or edx, edi
and edx, 0xf6663850
mov ecx, edi
and ecx, 0x999c7af
or ecx, edx
sub ecx, edi
mov edx, edi
and edx, 0x8f2a15a7
and eax, 0x70d5ea58
or eax, edx
mov dword [esi + 8], eax
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 4]
lea eax, [eax + edi*2]
add eax, 1
mov edx, eax
not edx
or edx, eax
and edx, 0x8f2a15a7
or eax, 0x70d5ea58
add edx, eax
add edx, 1
mov eax, ebx
not eax
or eax, ebx
not eax
and eax, ecx
or ecx, ebx
add ecx, eax
mov eax, ecx
and eax, 0x999c7af
mov ebx, ecx
xor ebx, 0xf6663850
add ebx, eax
mov eax, ecx
xor eax, 0x999c7af
add eax, ebx
or ecx, 0x999c7af
sub eax, ecx
mov ebx, dword [esi + 4]
mov ecx, edi
or ecx, ebx
and ecx, 0x70d5ea58
mov edi, ecx
mov ecx, eax
and ecx, ebx
xor eax, ebx
or ebx, 0x8f2a15a7
add ebx, edi
add ebx, 1
mov edi, edx
xor edi, ebx
mov dword [esi + 4], ebx
sub dword [esi + 4], edi
or edx, ebx
add edx, dword [esi + 4]
add edx, edi
sub edx, ebx
xor edx, dword [esi + 8]
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0x34]
add edi, ebx
add edi, 0xea06c2b9
not edx
mov ebx, edi
sub ebx, edx
neg edx
xor edx, edi
add ebx, edx
not edx
add edx, ebx
add edx, 0x7e0422a1
mov edi, ecx
or edi, eax
not edi
add edi, edi
not eax
or eax, ecx
sub eax, edi
not ecx
add ecx, eax
not edx
add edx, ecx
imul eax, edx, 0xe2324e19
mov ecx, 0x9546a02
sub ecx, eax
not ecx
imul ecx, ecx, 0x9aed1d7
lea eax, [ecx + 0x9aed1d7]
mov edx, eax
and edx, 0x54b5e0be
lea edx, [ecx + edx*2]
add edx, 0x9aed1d7
mov ecx, eax
not ecx
mov edi, ecx
and edi, 0xd4b5e0be
add edi, edx
mov edx, ecx
and edx, 0x2b4a1f41
lea edx, [edi + edx*2]
xor eax, 0xd4b5e0be
add eax, edx
or ecx, 0xd4b5e0be
sub eax, ecx
add eax, 0x2b4a1f43
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x24]
mov dword [ecx], eax
mov eax, dword [esi + 0xc]
mov dword [eax], 0x5672469
jmp 0x10018957
mov ecx, dword [0x1007ea20]
mov eax, dword [0x1007ea24]
mov edx, eax
not edx
mov edi, ecx
and edi, edx
xor eax, ecx
not eax
add eax, edi
or edx, ecx
sub eax, edx
add eax, 0x2ddbf510
mov ecx, dword [0x10088a08]
cmp dword [0x10088a04], 0xa
setl byte [esi + 8]
mov edi, ecx
and edi, 1
add edi, edi
mov ebx, ecx
sub ebx, edi
add ebx, ecx
add ebx, ecx
add ebx, 0xffffffff
imul ebx, ecx
mov edi, dword [0x1007ea30]
mov ecx, dword [0x1007ea34]
mov dword [esi + 4], ecx
mov edx, edi
or edx, ecx
mov ecx, edx
not ecx
shl ecx, 2
lea ecx, [ecx + edx*2]
mov edx, edi
xor edx, dword [esi + 4]
not edx
add edx, edx
sub ecx, edx
and edi, dword [esi + 4]
not edi
add edi, edi
sub ecx, edi
and ebx, 1
cmp ebx, ecx
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
sete al
mov ah, byte [esi + 8]
mov cl, ah
xor cl, al
mov dl, ah
or dl, al
add cl, dl
not dl
add dl, cl
and ah, al
not ah
add ah, dl
test ah, 1
je 0x1001913a
nop word [eax + eax]
mov edx, dword [0x10088a00]
cmp dword [0x100889fc], 0xa
setl al
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1007ea54]
mov edi, edx
not edi
or edi, edx
mov edx, dword [0x1007ea50]
and edi, edx
sub edi, edx
and ecx, 1
cmp ecx, edi
sete cl
or cl, al
je 0x10019100
jmp 0x10019170
mov eax, dword [0x1007eaf8]
mov ecx, dword [0x1007eafc]
mov edx, ecx
not edx
and edx, eax
mov edi, eax
or edi, ecx
add edi, edx
xor ecx, eax
not ecx
add ecx, edi
not eax
add eax, ecx
add eax, 0x2ddbf512
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
jmp 0x10019055
mov ecx, dword [0x1007e6c8]
mov edx, dword [0x1007e6cc]
mov eax, ecx
xor eax, edx
add eax, ecx
add eax, edx
mov edi, dword [0x100889f8]
or ecx, edx
add ecx, ecx
sub eax, ecx
add eax, 0xa
cmp dword [0x100889f4], eax
setge ch
setl cl
lea edx, [edi - 1]
imul edx, edi
mov edi, dword [0x1007e6d0]
mov dword [esi + 4], edi
mov ebx, dword [0x1007e6d4]
and edi, ebx
add edi, edi
mov eax, dword [esi + 4]
xor eax, ebx
sub ebx, edi
not eax
add eax, ebx
mov edi, dword [esi + 4]
add eax, edi
add eax, 1
and edx, 1
cmp edx, eax
sete al
setne dl
and dl, cl
mov ah, cl
or ah, al
add dl, ah
not ah
add ah, dl
xor cl, al
not cl
add cl, ah
add cl, ch
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
test cl, 1
jne 0x10019170
cmp eax, 0xe0687585
jle 0x100192a0
cmp eax, 0x2ddbf50f
jg 0x1001932c
cmp eax, 0x5672468
jle 0x10019499
cmp eax, 0x5672469
je 0x10019713
cmp eax, 0x17933e41
je 0x10019788
cmp eax, 0x19f04bb5
jne 0x10017410
mov edi, dword [0x100889f0]
cmp dword [0x100889ec], 0xa
setl cl
setge ch
lea edx, [edi - 1]
imul edx, edi
mov ebx, dword [0x1007e95c]
mov edi, ebx
not edi
mov eax, dword [0x1007e958]
and edi, eax
not eax
or eax, ebx
not eax
sub eax, edi
and edx, 1
cmp edx, eax
sete al
mov dl, ch
and dl, al
mov ah, cl
or ah, al
add ah, dl
xor cl, al
not cl
add cl, ah
or ch, al
add ch, cl
add ch, 1
test ch, 1
je 0x10017c1f
jmp 0x10017e24
cmp eax, 0xb92340dc
jg 0x100193e3
cmp eax, 0x8c62a5d1
jle 0x10019547
cmp eax, 0x8c62a5d2
je 0x10019808
cmp eax, 0x9eec975f
je 0x10019881
cmp eax, 0xa8d84190
jne 0x10017410
mov edx, dword [0x100889e8]
mov eax, dword [0x1007e928]
mov ecx, dword [0x1007e92c]
mov edi, ecx
not edi
and edi, eax
not eax
or eax, ecx
add eax, edi
add eax, 0xb
cmp dword [0x100889e4], eax
setge cl
setl al
lea ebx, [edx + 1]
imul ebx, edx
test bl, 1
sete dl
mov ah, al
or ah, dl
add ah, dl
xor al, dl
not al
add al, ah
add al, cl
add al, 1
test al, 1
je 0x10017a03
jmp 0x10017aa4
cmp eax, 0x439a83ef
jle 0x100195fc
cmp eax, 0x439a83f0
je 0x1001990c
cmp eax, 0x4fcf9de0
je 0x1001994d
cmp eax, 0x51af4902
jne 0x10017410
mov eax, dword [0x1007e9a0]
mov ecx, dword [0x1007e9a4]
mov edx, eax
and edx, ecx
add edx, edx
mov edi, eax
xor edi, ecx
sub ecx, edx
mov edx, dword [0x100889e0]
not edi
add edi, ecx
add eax, edi
add eax, 0xb
cmp dword [0x100889dc], eax
setge ah
setl al
mov ecx, edx
and ecx, 0xfffffffe
add ecx, edx
mov edi, edx
or edi, 1
add edi, ecx
add edi, edx
mov ecx, edx
not ecx
add edi, ecx
add edi, 0xffffffff
imul edi, edx
mov ecx, dword [0x1007e9a8]
mov ebx, dword [0x1007e9ac]
mov edx, ecx
or edx, ebx
not edx
add edx, ecx
not ebx
or ebx, ecx
sub edx, ebx
and edi, 1
cmp edi, edx
sete cl
or al, cl
or ah, cl
add cl, al
not al
add al, cl
add al, ah
add al, 1
test al, 1
je 0x10018957
jmp 0x10018ce8
cmp eax, 0xccf18f04
jle 0x10019692
cmp eax, 0xccf18f05
je 0x100199e2
cmp eax, 0xd086bd6e
je 0x10019a50
cmp eax, 0xdadfccfd
jne 0x10017410
mov edx, dword [0x100889d8]
mov eax, dword [0x1007e798]
or eax, dword [0x1007e79c]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x100889d4], eax
setl byte [esi + 4]
lea eax, [edx - 1]
imul eax, edx
mov dword [esi + 8], eax
mov edx, dword [0x1007e7a0]
mov edi, dword [0x1007e7a4]
mov ecx, edx
and ecx, edi
mov eax, edx
not eax
mov ebx, eax
and ebx, edi
lea ecx, [ebx + ecx*2]
mov ebx, edx
or ebx, edi
not ebx
lea ecx, [ecx + ebx*2]
xor edx, edi
add edx, ecx
or eax, edi
sub edx, eax
mov eax, dword [esi + 8]
and eax, 1
add edx, 1
cmp eax, edx
sete al
mov ah, byte [esi + 4]
mov cl, ah
and cl, al
mov dl, ah
or dl, al
add cl, dl
not dl
add dl, cl
xor ah, al
sub dl, ah
test dl, 1
je 0x10017b5d
jmp 0x10017bfe
cmp eax, 0xe49f1290
je 0x10019ab6
cmp eax, 0xfe846013
jne 0x10019c3f
mov edi, dword [0x100889d0]
mov eax, dword [0x1007e978]
mov ecx, dword [0x1007e97c]
mov edx, eax
not edx
and edx, ecx
not ecx
or ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
cmp dword [0x100889cc], eax
setge byte [esi + 4]
setl byte [esi + 8]
lea eax, [edi + 1]
imul eax, edi
mov dword [esi + 0x10], eax
mov ebx, dword [0x1007e980]
mov edx, ebx
not edx
mov eax, dword [0x1007e984]
and edx, eax
mov edi, ebx
or edi, eax
mov ecx, ebx
and ebx, eax
not eax
and ecx, eax
sub ecx, edx
not edi
add edi, ecx
add eax, eax
sub edi, eax
not ebx
add ebx, edi
mov eax, dword [esi + 0x10]
and eax, 1
cmp eax, ebx
sete al
setne cl
mov dl, byte [esi + 8]
and cl, dl
mov ah, byte [esi + 4]
and ah, al
or ah, cl
mov ecx, edx
xor cl, al
add cl, ah
or dl, al
add dl, cl
add dl, 1
test dl, 1
je 0x1001881f
jmp 0x100188f4
cmp eax, 0x8365a61a
je 0x10019b02
cmp eax, 0x84d9cc4b
jne 0x10017410
mov eax, dword [0x1007e9c8]
mov ecx, dword [0x1007e9cc]
mov edx, eax
not edx
and edx, ecx
mov edi, eax
or edi, ecx
mov ebx, eax
and eax, ecx
not ecx
and ebx, ecx
sub ebx, edx
not edi
add edi, ebx
mov ebx, dword [0x100889c8]
add ecx, ecx
sub edi, ecx
not eax
add eax, edi
add eax, 0xa
cmp dword [0x100889c4], eax
setge ah
setl al
lea edx, [ebx - 1]
imul edx, ebx
mov ecx, dword [0x1007e9d0]
mov edi, dword [0x1007e9d4]
mov dword [esi + 4], edi
mov ebx, ecx
xor ebx, edi
lea edi, [ecx + ebx*2]
or ecx, dword [esi + 4]
add ecx, ecx
sub edi, ecx
not ebx
add ebx, edi
mov ecx, dword [esi + 4]
add ecx, ebx
add ecx, 1
and edx, 1
cmp edx, ecx
setne dl
sete cl
mov ch, al
or ch, cl
mov dh, al
xor dh, cl
not dh
add dh, ch
or dl, al
add dl, dh
add dl, ah
and al, cl
not al
add al, dl
test al, 1
jne 0x10017447
jmp 0x10017709
cmp eax, 0x2ddbf510
je 0x10019b4d
cmp eax, 0x3d8f1a8f
jne 0x10017410
mov edx, dword [0x100889c0]
mov eax, dword [0x1007e838]
mov ecx, dword [0x1007e83c]
mov edi, eax
or edi, ecx
not edi
lea edi, [eax + edi*2]
xor eax, ecx
add eax, edi
add eax, ecx
add eax, 0xc
cmp dword [0x100889bc], eax
setl al
mov ecx, edx
not ecx
add ecx, edx
add ecx, edx
imul ecx, edx
mov edi, dword [0x1007e844]
mov dword [esi + 4], edi
not edi
mov edx, dword [0x1007e840]
and edi, edx
add edi, edi
mov ebx, edx
sub ebx, edi
mov edi, edx
not edi
or edi, dword [esi + 4]
sub ebx, edi
and edx, dword [esi + 4]
not edx
add edx, ebx
and ecx, 1
cmp ecx, edx
setne cl
sete dl
xor dl, al
add dl, cl
or al, cl
add al, dl
test al, 1
jne 0x10017f6d
jmp 0x10017fde
cmp eax, 0xb92340dd
je 0x10019bd4
cmp eax, 0xbe06e2cd
jne 0x10017410
mov edi, dword [0x100889b8]
mov eax, dword [0x1007e8b4]
and eax, dword [0x1007e8b0]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x100889b4], eax
setl ch
setge cl
mov edx, edi
not edx
imul edx, edi
mov edi, dword [0x1007e8b8]
mov ebx, edi
not ebx
mov eax, dword [0x1007e8bc]
and ebx, eax
not eax
or eax, edi
add eax, ebx
add eax, 1
and edx, 1
cmp edx, eax
setne al
sete dl
and cl, dl
or dl, ch
not dl
add dl, cl
or al, ch
add al, dl
test al, 1
jne 0x10017af1
jmp 0x10017b3f
mov ecx, dword [0x100889b0]
mov eax, dword [0x1007ea10]
mov edx, eax
not edx
add eax, edx
add eax, 0xb
cmp dword [0x100889ac], eax
setl byte [esi + 4]
mov edx, ecx
and edx, 1
mov edi, ecx
and edi, 0xfffffffe
sub edx, edi
add edx, ecx
mov edi, ecx
not edi
add edx, edi
add edx, 0xab102654
imul edx, ecx
mov ebx, dword [0x1007ea18]
mov edi, dword [0x1007ea1c]
mov eax, ebx
xor eax, edi
mov ecx, ebx
or ecx, edi
not ecx
add ecx, eax
and ebx, edi
lea eax, [ebx + ecx]
add eax, 1
and edx, 1
cmp edx, eax
sete al
or al, byte [esi + 4]
add al, 1
test al, 1
je 0x10019055
jmp 0x1001913a
mov edx, dword [0x100889a8]
cmp dword [0x100889a4], 0xa
setl byte [esi + 4]
mov ecx, edx
and ecx, 1
add ecx, ecx
mov edi, edx
sub edi, ecx
add edi, edx
lea ecx, [edx + edi]
add ecx, 0xffffffff
imul ecx, edx
mov edx, dword [0x1007e7f0]
mov edi, dword [0x1007e7f4]
mov eax, edx
or eax, edi
mov ebx, eax
not ebx
shl ebx, 2
lea ebx, [ebx + eax*2]
mov eax, edx
xor eax, edi
not eax
add eax, eax
sub ebx, eax
and edx, edi
not edx
add edx, edx
sub ebx, edx
and ecx, 1
cmp ecx, ebx
sete al
mov ah, byte [esi + 4]
mov cl, ah
xor cl, al
mov dl, ah
or dl, al
add cl, dl
not dl
add dl, cl
and ah, al
not ah
add ah, dl
test ah, 1
jne 0x100183b2
jmp 0x10018439
mov ecx, dword [0x1007e810]
mov edx, dword [0x1007e814]
mov eax, ecx
and eax, edx
not edx
add eax, edx
or edx, ecx
sub eax, edx
add eax, 0xa
cmp dword [0x100889a0], eax
mov edi, dword [0x1008899c]
setge al
setl ah
lea edx, [edi - 1]
imul edx, edi
mov edi, dword [0x1007e818]
mov ebx, edi
not ebx
mov ecx, dword [0x1007e81c]
mov dword [esi + 4], ecx
and ebx, dword [esi + 4]
add ebx, ebx
lea ebx, [ebx + edi*2]
or edi, dword [esi + 4]
add edi, edi
sub edi, ebx
and edx, 1
cmp edx, edi
sete dl
mov cl, ah
and ah, dl
and al, dl
add al, ah
add al, dl
or cl, dl
add cl, al
test cl, 1
jne 0x10018473
jmp 0x1001850f
mov eax, dword [0x1007e888]
mov ecx, dword [0x1007e88c]
mov edx, eax
and edx, ecx
add edx, edx
mov edi, eax
xor edi, ecx
sub ecx, edx
mov edx, dword [0x10088998]
not edi
add edi, ecx
add eax, edi
add eax, 0xb
cmp dword [0x10088994], eax
setge ah
setl al
mov ecx, edx
and ecx, 0xfffffffe
add ecx, edx
mov edi, edx
or edi, 1
add edi, ecx
add edi, edx
mov ecx, edx
not ecx
add edi, ecx
add edi, 0xffffffff
imul edi, edx
mov ecx, dword [0x1007e890]
mov ebx, dword [0x1007e894]
mov edx, ecx
or edx, ebx
not edx
add edx, ecx
not ebx
or ebx, ecx
sub edx, ebx
and edi, 1
cmp edi, edx
sete cl
or al, cl
or ah, cl
add cl, al
not al
add al, cl
add al, ah
add al, 1
test al, 1
je 0x100185fb
jmp 0x10018677
mov eax, dword [0x1007e748]
mov ecx, eax
not ecx
or ecx, eax
not ecx
and ecx, dword [0x1007e74c]
mov eax, dword [0x10088990]
add ecx, 0xa
cmp dword [0x1008898c], ecx
setl cl
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
add al, 1
test al, 1
je 0x10018185
jmp 0x10018234
mov eax, dword [0x1007e860]
mov ecx, dword [0x1007e864]
mov edx, eax
not edx
and edx, ecx
not ecx
or ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
cmp dword [0x10088988], eax
mov eax, dword [0x10088984]
setge byte [esi + 4]
setl byte [esi + 8]
lea ecx, [eax + 1]
imul ecx, eax
mov dword [esi + 0x10], ecx
mov ebx, dword [0x1007e868]
mov ecx, ebx
not ecx
mov edx, dword [0x1007e86c]
and ecx, edx
mov edi, ebx
or edi, edx
mov eax, ebx
and ebx, edx
not edx
and eax, edx
sub eax, ecx
not edi
add edi, eax
add edx, edx
sub edi, edx
not ebx
add ebx, edi
mov eax, dword [esi + 0x10]
and eax, 1
cmp eax, ebx
sete al
setne cl
mov dl, byte [esi + 8]
and cl, dl
mov ah, byte [esi + 4]
and ah, al
or ah, cl
mov ecx, edx
xor cl, al
add cl, ah
or dl, al
add dl, cl
test dl, 1
jne 0x10018530
jmp 0x100185da
mov edx, dword [0x10088980]
mov eax, dword [0x1007e8d8]
and eax, dword [0x1007e8dc]
mov ecx, eax
not ecx
add ecx, ecx
lea eax, [ecx + eax*2]
mov ecx, 8
sub ecx, eax
cmp dword [0x1008897c], ecx
setl byte [esi + 4]
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1007e8e0]
mov eax, dword [0x1007e8e4]
mov ebx, edx
xor ebx, eax
mov edi, eax
not edi
or edi, edx
add edi, ebx
mov ebx, edx
not ebx
add ebx, edi
and edx, eax
lea eax, [edx + ebx]
add eax, 2
and ecx, 1
cmp ecx, eax
sete al
or al, byte [esi + 4]
cmp al, 1
je 0x100186ad
jmp 0x10018732
mov eax, dword [0x10088978]
cmp dword [0x10088974], 0xa
setge byte [esi + 4]
setl byte [esi + 8]
lea edx, [eax + 1]
imul edx, eax
mov edi, dword [0x1007e778]
mov ecx, dword [0x1007e77c]
mov eax, edi
xor eax, ecx
add eax, ecx
mov ebx, edi
and edi, ecx
not ecx
lea eax, [eax + ecx*2]
not ebx
add ebx, eax
not edi
add edi, edi
sub ebx, edi
and edx, 1
add ebx, 1
cmp edx, ebx
setne al
mov dl, byte [esi + 8]
mov ecx, edx
and cl, al
add cl, dl
add cl, al
add cl, byte [esi + 4]
test cl, 1
jne 0x10018255
jmp 0x100182b1
mov ecx, dword [0x10088970]
cmp dword [0x1008896c], 0xa
setl al
mov edx, ecx
xor edx, 1
add edx, ecx
mov edi, ecx
or edi, 0xfffffffe
add edi, edx
mov edx, ecx
not edx
add edx, edi
add edx, ecx
add edx, 0xffffffff
imul edx, ecx
test dl, 1
sete cl
mov edx, eax
xor dl, cl
or al, cl
add al, dl
not dl
add dl, al
test dl, 1
je 0x100180a8
jmp 0x10018155
mov edx, dword [0x10088968]
cmp dword [0x10088964], 0xa
setl al
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1007e7c8]
mov edi, dword [0x1007e7cc]
mov ebx, edx
or ebx, edi
not edx
or edx, edi
not edi
add edi, ebx
add edx, edi
add edx, 2
and ecx, 1
cmp ecx, edx
sete cl
or cl, al
cmp cl, 1
je 0x100182f1
jmp 0x10018391
mov edx, dword [0x1007e6f8]
mov eax, dword [0x1007e6fc]
mov ecx, edx
sub ecx, eax
mov edi, edx
xor edi, eax
add ecx, edi
not edi
lea edi, [ecx + edi*2]
mov ecx, dword [0x10088960]
not eax
or eax, edx
add eax, eax
sub edi, eax
add edi, 0xa
cmp dword [0x1008895c], edi
setl al
mov edx, ecx
not edx
add edx, ecx
add edx, ecx
add edx, 2
imul edx, ecx
mov ecx, dword [0x1007e700]
mov edi, ecx
not edi
mov ebx, dword [0x1007e704]
and edi, ebx
not ebx
or ebx, ecx
lea ecx, [edi + ebx]
add ecx, 1
and edx, 1
cmp edx, ecx
setne cl
sete dl
mov ah, al
xor ah, dl
or al, dl
add dl, ah
add dl, al
not ah
add ah, dl
add ah, cl
test ah, 1
jne 0x10018024
jmp 0x10018077
mov eax, dword [0x1007e900]
mov edx, dword [0x1007e904]
mov ecx, eax
not ecx
mov edi, ecx
and edi, edx
or eax, edx
mov edx, dword [0x10088958]
not eax
add eax, edi
sub eax, ecx
add eax, 0xa
cmp dword [0x10088954], eax
setl byte [esi + 4]
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1007e90c]
mov edi, edx
not edi
mov eax, dword [0x1007e908]
mov ebx, eax
and ebx, edi
xor edx, eax
not edx
add edx, ebx
or edi, eax
sub edx, edi
and ecx, 1
cmp ecx, edx
sete al
or al, byte [esi + 4]
add al, 1
test al, 1
je 0x1001875a
jmp 0x100187f3
cmp eax, 0xe0687586
jne 0x10017410
nop word [eax + eax]
mov edx, dword [0x10088950]
cmp dword [0x1008894c], 0xa
setl al
lea ecx, [edx + 1]
imul ecx, edx
mov edx, dword [0x1007ea08]
mov edi, dword [0x1007ea0c]
mov ebx, edx
or ebx, edi
not edx
or edx, edi
not edi
add edi, ebx
add edx, edi
add edx, 2
and ecx, 1
cmp ecx, edx
sete cl
or cl, al
mov eax, dword [esi + 0x38]
mov edi, dword [eax]
cmp cl, 1
jne 0x10019c50
mov ecx, dword [esi + 0x60]
xor ecx, ebp
call fcn.10069740
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret