Function at 0x10014850
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, 0x60
mov esi, esp
mov eax, dword [0x100788c0]
xor eax, ebp
mov dword [esi + 0x58], eax
mov eax, dword [0x10071688]
mov ecx, dword [0x1007168c]
mov edx, ecx
not edx
and edx, eax
sub edx, eax
mov edi, eax
or edi, ecx
add edi, edx
mov ebx, dword [0x1007bb78]
xor eax, ecx
not eax
add eax, edi
add eax, 0xb
cmp dword [0x1007bb74], eax
setge ah
setl al
lea edx, [ebx + 1]
imul edx, ebx
mov ecx, dword [0x10071690]
mov ebx, dword [0x10071694]
mov edi, ecx
xor edi, ebx
not edi
add edi, ecx
not ebx
add edi, ebx
or ebx, ecx
add ebx, ebx
sub edi, ebx
and edx, 1
cmp edx, edi
sete cl
setne dl
and dl, al
and ah, cl
or ah, dl
mov edx, eax
xor dl, cl
add dl, ah
or al, cl
add al, dl
add al, 1
test al, 1
jne 0x10014b31
push eax
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0x2c], esp
push eax
mov edi, esp
push eax
mov ebx, esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x28], eax
mov esp, eax
push eax
mov dword [esi + 0x44], esp
push 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x100781e4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 0x1c
movaps xmm0, xmmword [0x100691b0]
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 + 0x20], ebx
mov eax, dword [ebx]
cmp eax, 0xffffffff
mov dword [esi + 0x48], edi
sete byte [edi]
push eax
mov dword [esi + 0x10], esp
mov eax, dword [0x10071668]
mov edx, eax
not edx
mov dword [esi + 0x1c], edx
lea edi, [edx + edx]
lea eax, [edi + eax*2]
lea ecx, [edx + eax]
add ecx, 2
add eax, edx
mov edx, dword [0x1007166c]
mov dword [esi + 4], edx
not edx
mov dword [esi], edx
add eax, edx
add eax, 2
and ecx, edx
sub eax, ecx
not eax
add eax, eax
mov ecx, 0x63740878
sub ecx, eax
mov edx, ecx
and edx, 0x63740878
add edx, ecx
mov eax, ecx
xor ecx, 0x63740878
add ecx, edx
not eax
and eax, 0x9c8bf787
lea edx, [ecx + eax]
mov dword [esi + 0x14], edx
lea edx, [eax + ecx]
add edx, 0xcbb940ec
mov ecx, edx
not ecx
mov eax, dword [esi + 4]
and ecx, eax
mov ebx, dword [esi + 0x14]
lea ecx, [ecx + ebx*2]
add ecx, 0x977281d8
add ecx, eax
or edx, eax
sub ecx, edx
mov eax, ecx
xor eax, 0x2f2d4963
add eax, ecx
xor ecx, 0xd0d2b69c
lea edx, [eax + ecx]
mov dword [esi + 0x14], edx
add ecx, eax
add ecx, 0xd0d2b69e
mov ebx, dword [esi + 0x1c]
sub edi, ebx
and ebx, dword [esi + 4]
mov eax, 0xfffffffe
sub eax, ebx
mov edx, eax
not edx
mov ebx, ecx
and ebx, edx
xor edx, ecx
and ecx, eax
sub ebx, ecx
mov ecx, dword [esi + 0x14]
add ecx, ebx
add ecx, 0xd0d2b69e
add ecx, eax
add edx, ecx
lea ecx, [eax + edx]
add ecx, 2
mov eax, edi
or edi, dword [esi]
mov edx, dword [esi + 4]
and eax, edx
add eax, edi
not edi
add edi, eax
sub edi, edx
not edi
lea edx, [edi + edi]
sub edx, edi
mov eax, edx
not eax
mov edi, ecx
or edi, eax
not edi
add edi, edi
sub edx, edi
xor ecx, eax
not ecx
add edx, ecx
sub edx, eax
lea eax, [edx + 0x3fe6f174]
mov ecx, eax
and ecx, 0x880bec58
add ecx, edx
add ecx, 0x3fe6f174
not eax
add ecx, eax
or eax, 0x880bec58
sub ecx, eax
imul eax, ecx, 0x1cc2a0ab
mov ecx, 0xde319457
sub ecx, eax
not ecx
imul eax, ecx, 0xcfb45a03
add eax, 0xc6c0a7ec
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
push eax
mov dword [esi + 0x14], esp
push eax
mov dword [esi + 0x1c], esp
push eax
mov dword [esi + 4], esp
mov eax, dword [0x10071698]
mov ecx, dword [0x1007169c]
mov edx, eax
or eax, ecx
not ecx
and edx, ecx
not eax
add eax, edx
sub eax, ecx
add eax, 0xf0ff5685
mov ecx, dword [0x1007bb70]
mov edx, dword [0x100716a0]
and edx, dword [0x100716a4]
mov edi, edx
not edi
add edx, edi
add edx, 0xb
cmp dword [0x1007bb6c], edx
setl byte [esi + 8]
lea ebx, [ecx + 1]
imul ebx, ecx
mov edx, dword [0x100716a8]
mov ecx, dword [0x100716ac]
mov dword [esi], ecx
mov edi, edx
xor edi, ecx
mov ecx, edi
not ecx
add ecx, edi
mov edi, dword [esi]
not edi
add ecx, edi
or edi, edx
sub ecx, edi
and edx, dword [esi]
add ecx, edx
add ecx, 1
and ebx, 1
cmp ebx, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
sete al
or al, byte [esi + 8]
cmp al, 1
je 0x10016310
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 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x100781e4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
sub esp, 0x1c
movaps xmm0, xmmword [0x100691b0]
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], esp
mov eax, dword [0x10071668]
mov ecx, dword [0x1007166c]
not eax
mov dword [esi + 0x10], eax
mov edi, ecx
mov ebx, ecx
mov dword [esi + 4], ecx
not edi
mov edx, eax
or edx, edi
mov dword [esi + 0xc], edx
mov ecx, edx
not ecx
add ecx, ecx
add ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, 0xfffffffe
mov eax, edx
and eax, 0x2f2d4962
sub eax, ecx
or edx, 0xd0d2b69c
sub eax, edx
lea ecx, [eax - 3]
mov edx, ecx
xor edx, ebx
mov ebx, dword [esi + 4]
add ebx, eax
add ebx, 0xfffffffd
add edx, ebx
or ecx, edi
add ecx, edx
mov edx, 2
sub edx, eax
or edx, dword [esi + 4]
lea eax, [edx + ecx]
add eax, 2
mov ecx, eax
not ecx
and ecx, 0x50d2b69c
add ecx, ecx
xor eax, 0xd0d2b69c
sub eax, ecx
lea ecx, [edi + edi]
sub ecx, edi
mov edx, ecx
not edx
add edx, edx
add ecx, edx
add ecx, 1
mov ebx, dword [esi + 0x10]
and ecx, ebx
mov edx, ecx
not edx
add ecx, edx
add ecx, edx
add eax, ecx
add eax, 0xa1a56d3a
and edi, ebx
add edi, dword [esi + 0xc]
mov ecx, dword [esi + 4]
add edi, ecx
or ebx, ecx
sub edi, ebx
mov ecx, edi
not ecx
add ecx, ecx
add ecx, edi
add ecx, 1
mov edx, eax
or edx, ecx
not ecx
mov edi, eax
sub edi, ecx
mov ebx, eax
xor ebx, ecx
add edi, ebx
not ebx
lea edi, [edi + ebx*2]
sub edi, edx
not eax
or eax, ecx
sub edi, eax
lea eax, [edi + 0x3fe6f174]
mov ecx, eax
or ecx, 0x880bec58
add ecx, edi
add ecx, 0x3fe6f174
mov edx, eax
not edx
add edx, ecx
and eax, 0x880bec58
lea ecx, [edx + eax]
add eax, edx
add eax, 1
mov edx, eax
and edx, 0x40190e8c
add edx, edx
add ecx, ecx
add ecx, 2
sub ecx, edx
xor eax, 0xc0190e8c
sub ecx, eax
imul eax, ecx, 0x1cc2a0ab
add eax, 0x9fd86f08
mov ecx, eax
not ecx
mov edx, ecx
sub edx, eax
sub edx, ecx
sub edx, ecx
add edx, ecx
mov eax, 0xc384555d
sub eax, edx
imul eax, eax, 0xcfb45a03
add eax, 0xf70c4de9
mov ecx, dword [esi]
mov dword [ecx], eax
push eax
push eax
push eax
mov eax, esp
mov ecx, dword [0x10071a64]
mov edx, ecx
not edx
add ecx, edx
add ecx, 0xf0ff5686
mov dword [eax], ecx
jmp 0x100148e5
mov edx, dword [0x1007bb68]
mov eax, dword [0x100716e0]
xor eax, dword [0x100716e4]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x1007bb64], eax
setl al
lea ecx, [edx + 1]
imul ecx, edx
mov ebx, dword [0x100716e8]
mov edi, dword [0x100716ec]
mov edx, ebx
or edx, edi
mov dword [esi], edx
mov edx, ebx
and ebx, edi
not edi
add edi, dword [esi]
not edx
add edx, edi
add edx, ebx
add edx, 2
and ecx, 1
cmp ecx, edx
sete cl
mov edx, eax
add dl, cl
mov ah, al
xor ah, cl
add ah, dl
or al, cl
add al, ah
test al, 1
je 0x10014d00
jmp 0x10016220
mov eax, dword [esi + 4]
mov dword [eax], 0xf0ff5685
mov ecx, dword [0x1007bb60]
cmp dword [0x1007bb5c], 0xa
setl dl
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
and ecx, 1
and al, dl
cmp ecx, 1
adc al, 0
test al, 1
jne 0x10016220
mov eax, dword [0x10071b10]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xf0ff5686
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10014d6b
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
cmp eax, 0xb964c330
mov eax, 0xd28daf03
mov ecx, 0x340f1494
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [0x100717f8]
mov ecx, dword [0x100717fc]
mov edx, eax
and edx, ecx
mov edi, eax
or edi, ecx
not edi
add edi, edx
xor eax, ecx
add eax, edi
add eax, 0xb
mov ecx, dword [0x1007bb58]
cmp dword [0x1007bb54], eax
setl al
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
or cl, al
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [0x10071a98]
mov edx, dword [0x10071a9c]
mov edi, ecx
not edi
and edi, edx
mov ebx, ecx
xor ebx, edx
sub ebx, edi
or ecx, edx
not ecx
add ecx, ebx
add ecx, edx
add ecx, 0xb964c331
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0x340f1494
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10014db5
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [str.t__D]
mov edx, dword [0x1007181c]
mov edi, ecx
or edi, edx
not edi
lea edi, [ecx + edi*2]
xor ecx, edx
not ecx
sub ecx, edi
not edx
add ecx, edx
add ecx, 0x880bec58
cmp eax, ecx
mov eax, 0x6a180281
mov ecx, 0x28667b03
cmovl eax, ecx
cmp dword [0x1007bb50], 0xa
mov edi, dword [0x1007bb4c]
setl byte [esi]
lea edx, [edi + 1]
imul edx, edi
mov ecx, dword [0x10071828]
mov ebx, dword [0x1007182c]
mov edi, ecx
and edi, ebx
not ecx
add edi, ecx
or ecx, ebx
sub edi, ecx
and edx, 1
cmp edx, edi
mov ecx, dword [esi + 4]
mov dword [ecx], eax
sete al
or al, byte [esi]
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [0x10071aa0]
mov edi, dword [0x10071aa4]
mov ecx, edx
or ecx, edi
not ecx
add ecx, edi
not edx
or edx, edi
sub ecx, edx
add ecx, 0x880bec58
cmp eax, ecx
mov eax, 0x6a180281
mov ecx, 0x28667b03
cmovl eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10014e56
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [0x10071728]
mov edi, dword [0x1007172c]
mov ecx, edx
not ecx
and ecx, edi
add ecx, edx
or edx, edi
sub ecx, edx
add ecx, 0xb964c330
cmp eax, ecx
mov eax, 0x5e6987fe
mov ecx, 0xe61041f7
cmovl eax, ecx
mov ecx, dword [0x10071730]
mov edx, dword [0x10071734]
mov edi, ecx
not edi
and edi, edx
mov ebx, ecx
xor ebx, edx
sub ebx, edi
or ecx, edx
not ecx
add ecx, ebx
mov edi, dword [0x1007bb48]
add ecx, edx
add ecx, 0xb
cmp dword [0x1007bb44], ecx
setl byte [esi]
lea edx, [edi + 1]
imul edx, edi
mov edi, dword [0x10071738]
mov ebx, dword [0x1007173c]
mov ecx, edi
or edi, ebx
not ebx
and ecx, ebx
not edi
add edi, ecx
sub edi, ebx
and edx, 1
cmp edx, edi
mov ecx, dword [esi + 4]
mov dword [ecx], eax
sete al
or al, byte [esi]
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [0x10071a70]
mov edi, dword [0x10071a74]
mov ecx, edx
not ecx
and ecx, edi
add ecx, edx
or edx, edi
sub ecx, edx
add ecx, 0xb964c330
cmp eax, ecx
mov eax, 0x5e6987fe
mov ecx, 0xe61041f7
cmovl eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10014f10
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [0x10071868]
mov edi, dword [0x1007186c]
mov ecx, edx
and ecx, edi
not edi
add ecx, edi
or edi, edx
sub ecx, edi
add ecx, 0xb5a4d1a1
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0x8523d4f4
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [0x10071870]
mov ecx, dword [0x10071874]
mov edx, eax
and edx, ecx
mov edi, eax
or edi, ecx
not edi
add edi, edx
mov edx, dword [0x1007bb40]
xor eax, ecx
add eax, edi
add eax, 0xb
cmp dword [0x1007bb3c], eax
setl al
mov ecx, edx
not ecx
add ecx, 0x79275bce
imul ecx, edx
mov edx, dword [0x10071878]
mov edi, edx
not edi
mov ebx, dword [0x1007187c]
or edi, ebx
add edi, edx
and edx, ebx
not edx
add edx, edi
add edx, 2
and ecx, 1
cmp ecx, edx
sete cl
setne dl
mov ah, al
and ah, dl
mov ch, al
xor ch, cl
add ch, ah
or cl, al
not cl
add cl, ch
or al, dl
add al, cl
test al, 1
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [0x10071ab0]
mov edx, dword [0x10071ab4]
mov edi, edx
not edi
and edi, ecx
add edi, edi
lea ebx, [ecx + ecx]
sub ebx, edi
mov edi, ecx
or edi, edx
not edi
lea edi, [ebx + edi*2]
xor ecx, edx
not ecx
add ecx, ecx
sub edi, ecx
add edi, 0xb5a4d1a1
cmp eax, edi
mov eax, 0xd28daf03
mov ecx, 0x8523d4f4
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10014fe5
push 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x1007820b
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, dword [esi + 0x30]
mov ecx, dword [ebx]
push 0
push dword [esi + 0x44]
push dword [ecx]
mov edi, dword [esi + 0x34]
push dword [edi]
mov ecx, dword [esi + 0x20]
push dword [ecx]
call eax
mov eax, dword [ebx]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov ecx, dword [0x100719a8]
mov edx, dword [0x100719ac]
mov eax, ecx
or eax, edx
not eax
add eax, edx
not ecx
or ecx, edx
sub eax, ecx
add eax, 0xb5a4d1a1
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [edi]
mov dword [esi], eax
mov ecx, dword [0x100719b0]
mov eax, dword [0x100719b4]
mov edx, ecx
or ecx, eax
not eax
and edx, eax
not ecx
add ecx, edx
sub ecx, eax
mov edi, dword [0x100719bc]
mov eax, edi
not eax
mov edx, dword [0x100719b8]
and eax, edx
add eax, eax
lea ebx, [edx + edx]
sub ebx, eax
mov eax, edx
or eax, edi
not eax
lea eax, [ebx + eax*2]
xor edx, edi
add ecx, 0x815f2629
not edx
add edx, edx
sub eax, edx
mov edx, dword [0x1007bb38]
add eax, 0xa
cmp dword [0x1007bb34], eax
mov eax, edx
not eax
setl byte [esi + 8]
add eax, edx
lea edi, [edx + eax]
add edi, 0xca637122
imul edi, edx
mov eax, dword [0x100719c0]
mov ebx, eax
not ebx
mov edx, dword [0x100719c4]
and ebx, edx
sub ebx, edx
not edx
sub ebx, edx
or edx, eax
add edx, ebx
and edi, 1
cmp edi, edx
mov eax, dword [esi + 0x14]
mov edx, dword [esi]
mov dword [eax], edx
mov eax, dword [esi + 4]
mov dword [eax], ecx
setne al
sete cl
mov ah, byte [esi + 8]
mov dl, ah
or al, ah
and ah, cl
or dl, cl
add dl, cl
add al, dl
not ah
add ah, al
test ah, 1
jne 0x10016220
push 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x1007820b
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, dword [esi + 0x30]
mov ecx, dword [ebx]
push 0
push dword [esi + 0x44]
push dword [ecx]
mov edi, dword [esi + 0x34]
push dword [edi]
mov ecx, dword [esi + 0x20]
push dword [ecx]
call eax
mov eax, dword [ebx]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov eax, dword [esi + 0x10]
mov dword [eax], 0xb5a4d1a1
mov eax, dword [edi]
mov ecx, dword [esi + 0x14]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [eax], 0x815f2629
jmp 0x100150e8
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [0x10071700]
mov ecx, eax
not ecx
lea eax, [eax + ecx - 0xc83dca8]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov ecx, dword [0x1007bb30]
lea eax, [ecx + ecx]
mov edx, ecx
not edx
add eax, edx
add eax, 0xf4b68e92
cmp dword [0x1007bb2c], 0xa
setl dl
imul eax, ecx
test al, 1
sete cl
add al, dl
and cl, dl
not cl
add cl, al
test cl, 1
jne 0x10016220
mov eax, dword [esi + 0x10]
mov eax, dword [eax]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov eax, dword [0x10071a68]
mov ecx, dword [0x10071a6c]
mov edx, eax
or edx, ecx
mov edi, eax
sub edi, edx
add edi, ecx
and eax, ecx
not eax
add eax, edi
add eax, 0xf37c2358
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x1001525a
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
cmp eax, 0xbccb4e6
mov eax, 0x697f1b2d
mov ecx, 0xa776e54f
cmovl eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov edx, dword [0x1007bb28]
cmp dword [0x1007bb24], 0xa
setl al
mov ecx, edx
and ecx, 0xfffffffe
mov edi, edx
or edi, 1
add edi, ecx
mov ecx, edx
xor ecx, 0xfffffffe
add ecx, edi
add ecx, 2
imul ecx, edx
test cl, 1
sete dl
mov ah, al
or ah, dl
add ah, al
xor al, dl
not al
add al, ah
add al, cl
test al, 1
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
cmp eax, 0xbccb4e6
mov eax, 0x697f1b2d
mov ecx, 0xa776e54f
cmovl eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x100152e4
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
cmp eax, 0x3e5f3901
mov eax, 0x9a333d31
mov ecx, 0x27234f51
cmovl eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [0x1007bb20]
cmp dword [0x1007bb1c], 0xa
setl cl
mov edx, eax
not edx
imul edx, eax
test dl, 1
sete al
mov edx, ecx
and dl, al
xor cl, al
add cl, dl
test cl, 1
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [0x10071a80]
mov edi, dword [0x10071a84]
mov ecx, edi
not ecx
and ecx, edx
add ecx, edi
or edx, edi
sub ecx, edx
add ecx, 0x3e5f3901
cmp eax, ecx
mov eax, 0x9a333d31
mov ecx, 0x27234f51
cmovl eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10015363
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [0x100717a0]
mov edi, dword [0x100717a4]
mov ecx, edx
xor ecx, edx
not ecx
and ecx, edi
xor ecx, edx
xor edx, edi
sub ecx, edx
add ecx, 0x3e5f3901
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0x60581cde
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov ecx, dword [0x100717a8]
mov edx, dword [0x100717ac]
mov eax, ecx
or eax, edx
not eax
add eax, edx
not ecx
or ecx, edx
sub eax, ecx
mov ecx, dword [0x1007bb18]
add eax, 0xa
cmp dword [0x1007bb14], eax
setl al
lea edx, [ecx - 1]
imul edx, ecx
test dl, 1
sete cl
or cl, al
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [0x10071a88]
mov edx, dword [0x10071a8c]
mov edi, ecx
and edi, edx
mov ebx, ecx
or ebx, edx
not ebx
add ebx, edi
xor ecx, edx
add ecx, ebx
add ecx, 0x3e5f3902
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0x60581cde
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x100153e8
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [0x100717c8]
mov edx, dword [0x100717cc]
mov edi, eax
not edi
mov ebx, edi
and ebx, edx
or edi, edx
not edx
mov ecx, eax
and ecx, edx
sub ecx, ebx
or edx, eax
sub ecx, edx
lea eax, [ecx + edi]
add eax, 0xbccb4e6
cmp dword [esi], eax
mov eax, 0xd28daf03
mov ecx, 0x1b78fbc8
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov edx, dword [0x1007bb10]
mov eax, dword [0x100717d0]
mov ecx, dword [0x100717d4]
mov edi, eax
not edi
or edi, eax
and edi, ecx
sub edi, ecx
add edi, 0xa
cmp dword [0x1007bb0c], edi
setl cl
lea edi, [edx - 1]
imul edi, edx
mov eax, dword [0x100717d8]
mov edx, dword [0x100717dc]
mov dword [esi + 8], edx
mov ebx, eax
xor ebx, edx
lea edx, [eax + ebx*2]
mov dword [esi], edx
mov edx, eax
mov ebx, dword [esi + 8]
or edx, ebx
add edx, edx
sub dword [esi], edx
mov edx, eax
not edx
or edx, ebx
add edx, dword [esi]
and eax, ebx
add eax, edx
add eax, 1
and edi, 1
cmp edi, eax
setne al
sete dl
mov ah, cl
and ah, dl
mov ch, cl
and ch, al
add ch, ah
mov ah, cl
xor ah, dl
add ah, ch
or cl, dl
add cl, ah
add cl, al
add cl, 1
test cl, 1
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov edx, dword [0x10071a90]
mov edi, dword [0x10071a94]
mov ecx, edx
not ecx
and ecx, edi
add ecx, edx
or edx, edi
sub ecx, edx
add ecx, 0xbccb4e6
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0x1b78fbc8
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x100154a1
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
cmp eax, 0xb5a4d1a1
mov ecx, 0x1e2bc54e
mov eax, 0x807dc1b2
cmovl ecx, eax
mov dword [esi], ecx
mov edi, dword [0x1007bb08]
cmp dword [0x1007bb04], 0xa
setl cl
mov edx, edi
not edx
add edx, edi
add edx, edi
add edx, 0xfb41fbf2
imul edx, edi
mov edi, dword [0x10071850]
mov ebx, dword [0x10071854]
mov eax, edi
or edi, ebx
not ebx
and eax, ebx
not edi
add edi, eax
sub edi, ebx
and edx, 1
cmp edx, edi
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov dword [eax], edx
sete al
setne dl
and dl, cl
add dl, cl
mov ah, cl
or ah, al
add ah, dl
and cl, al
sub ah, cl
test ah, 1
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [0x10071aa8]
mov edx, dword [0x10071aac]
mov edi, ecx
or ecx, edx
not edx
and edi, edx
not ecx
add ecx, edi
sub ecx, edx
add ecx, 0xb5a4d1a1
cmp eax, ecx
mov eax, 0x1e2bc54e
mov ecx, 0x807dc1b2
cmovl eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x100155ac
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [0x10071890]
mov edi, dword [0x10071894]
mov edx, ecx
and edx, edi
mov ebx, ecx
or ebx, edi
xor ecx, edi
not ebx
lea edi, [ebx + edx*2]
add ecx, edi
not edx
add ecx, edx
add ecx, 0x880bec5a
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0x658eea49
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [0x10071898]
mov ecx, dword [0x1007189c]
mov edx, eax
xor edx, ecx
mov edi, edx
not edi
lea edi, [edx + edi*2]
mov edx, ecx
not edx
or edx, eax
sub edi, edx
mov edx, dword [0x1007bb00]
not eax
or eax, ecx
sub edi, eax
add edi, 0xa
cmp dword [0x1007bafc], edi
setge cl
setl al
mov edi, edx
xor edi, 1
add edi, edx
mov ebx, edx
xor ebx, 0xfffffffe
add ebx, edi
add ebx, 2
imul ebx, edx
test bl, 1
sete dl
mov ah, al
or ah, dl
mov ch, ah
not ch
add ch, ah
add ch, bl
add ch, cl
and al, dl
not al
add al, ch
test al, 1
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [0x10071ab8]
mov edx, dword [0x10071abc]
mov edi, ecx
not edi
and edi, edx
not edx
or edx, ecx
lea ecx, [edi + edx]
add ecx, 0x880bec59
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0x658eea49
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10015667
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [0x100718b8]
mov edx, dword [0x100718bc]
mov ebx, edx
not ebx
mov edi, eax
and edi, ebx
add edi, edi
mov ecx, eax
xor ecx, edx
sub edi, ecx
or ebx, eax
sub edi, ebx
not eax
or eax, edx
add eax, edi
add eax, 0x84ecb649
cmp dword [esi], eax
mov ecx, 0xd28daf03
mov eax, 0xf1824947
cmove ecx, eax
mov dword [esi], ecx
mov eax, dword [0x100718c0]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x1007baf8], eax
mov ecx, dword [0x1007baf4]
setl al
lea edx, [ecx + 1]
imul edx, ecx
mov edi, dword [0x100718c8]
mov ecx, dword [0x100718cc]
mov ebx, edi
xor ebx, ecx
not ebx
add ebx, ecx
not edi
add ebx, edi
or edi, ecx
add edi, edi
sub ebx, edi
and edx, 1
cmp edx, ebx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov dword [ecx], edx
setne cl
sete dl
or al, dl
add al, dl
add al, cl
add al, 1
test al, 1
jne 0x10016220
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [str.I._]
mov edx, dword [0x10071ac4]
mov edi, ecx
not edi
and edi, edx
sub edi, edx
not edx
sub edi, edx
or edx, ecx
lea ecx, [edi + edx]
add ecx, 0x84ecb649
cmp eax, ecx
mov eax, 0xd28daf03
mov ecx, 0xf1824947
cmove eax, ecx
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10015753
mov eax, dword [0x100718e0]
mov edx, dword [0x100718e4]
mov edi, eax
and edi, edx
mov ecx, eax
or ecx, edx
not ecx
add ecx, edi
xor eax, edx
mov dword [esi], eax
mov edi, dword [0x100718e8]
mov edx, edi
not edx
mov ebx, dword [0x100718ec]
and edx, ebx
add edx, edi
or edi, ebx
sub edx, edi
mov ebx, dword [0x1007baf0]
add edx, 0xa
cmp dword [0x1007baec], edx
setl byte [esi + 8]
lea edi, [ebx - 1]
imul edi, ebx
mov edx, dword [0x100718f0]
mov eax, dword [0x100718f4]
mov ebx, edx
or ebx, eax
not ebx
add ebx, eax
not edx
or edx, eax
sub ebx, edx
and edi, 1
cmp edi, ebx
mov eax, dword [esi]
lea eax, [eax + ecx + 0x5e0c9dbf]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
sete al
setne cl
mov dl, byte [esi + 8]
or al, dl
and dl, cl
add dl, al
not al
add al, dl
add al, cl
test al, 1
jne 0x10016220
mov edx, dword [0x10071ac8]
mov eax, dword [0x10071acc]
mov ecx, edx
and ecx, eax
mov ebx, eax
sub ebx, ecx
sub ebx, ecx
not eax
or eax, edx
add eax, ebx
add eax, ecx
add eax, 0x5e0c9dbf
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x10015839
mov edi, dword [0x10071908]
mov edx, dword [0x1007190c]
mov eax, edi
and eax, edx
mov dword [esi], eax
mov ebx, edi
not ebx
and ebx, edx
sub eax, ebx
not edx
or edx, edi
sub eax, edx
mov dword [esi + 8], eax
cmp dword [0x1007bae8], 0xa
mov edx, dword [0x1007bae4]
setl byte [esi + 0x18]
lea edi, [edx - 1]
imul edi, edx
mov ecx, dword [0x1007191c]
mov ebx, ecx
not ebx
mov eax, dword [0x10071918]
and ebx, eax
sub ebx, eax
mov edx, eax
or edx, ecx
add edx, ebx
xor eax, ecx
sub edx, eax
and edi, 1
cmp edi, edx
mov eax, dword [esi]
not eax
mov ecx, dword [esi + 8]
lea eax, [ecx + eax - 0x7ea0d9d7]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
sete al
or al, byte [esi + 0x18]
jne 0x10016220
mov edx, dword [0x10071ad0]
mov ecx, dword [0x10071ad4]
mov eax, edx
and eax, ecx
mov edi, edx
not edi
and edi, ecx
mov ebx, eax
sub ebx, edi
not ecx
or ecx, edx
sub ebx, ecx
not eax
add eax, ebx
add eax, 0x815f2629
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x100158fa
mov eax, dword [esi + 0x48]
cmp byte [eax], 0
mov ecx, 0xbccb4e6
mov eax, 0x3e5f3901
cmovne ecx, eax
mov dword [esi], ecx
mov ecx, dword [0x10071930]
mov eax, dword [0x10071934]
mov edi, ecx
or edi, eax
mov edx, eax
sub edx, edi
add edx, ecx
mov dword [esi + 8], edx
and ecx, eax
mov eax, dword [0x1007bae0]
cmp dword [0x1007badc], 0xa
setl byte [esi + 0x18]
lea edi, [eax - 1]
imul edi, eax
mov ebx, dword [0x10071944]
mov dword [esi + 0x24], ebx
not ebx
mov eax, dword [0x10071940]
lea edx, [eax + ebx]
or ebx, eax
sub edx, ebx
mov ebx, eax
not ebx
add ebx, edx
and eax, dword [esi + 0x24]
add eax, ebx
add eax, 1
and edi, 1
cmp edi, eax
mov eax, dword [esi + 0x10]
mov edx, dword [esi]
mov dword [eax], edx
not ecx
mov eax, dword [esi + 8]
lea eax, [ecx + eax - 0x7ea0d9d6]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
sete al
or al, byte [esi + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
jne 0x10016220
mov eax, dword [esi + 0x48]
cmp byte [eax], 0
mov eax, 0xbccb4e6
mov ecx, 0x3e5f3901
cmovne eax, ecx
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov eax, dword [esi + 4]
mov dword [eax], 0x815f2629
jmp 0x100159a8
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [eax], edi
mov eax, dword [eax]
push 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x100781fd
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov ecx, dword [esi + 0x20]
push dword [ecx]
call eax
mov dword [esi + 0x18], eax
mov edi, dword [0x10071670]
mov eax, dword [0x10071674]
mov dword [esi + 8], eax
mov ebx, eax
not ebx
mov edx, edi
xor edx, edi
not edx
lea eax, [eax + ebx*2]
add eax, 1
and edx, eax
xor edx, edi
mov ecx, edx
and ecx, edi
add ecx, edi
mov eax, edx
or eax, edi
not eax
add eax, ecx
not edx
or edx, edi
mov dword [esi], edi
sub eax, edx
mov ecx, ebx
mov dword [esi + 0x3c], ebx
lea ebx, [ebx + ebx*2]
add ebx, dword [esi + 8]
sub ebx, ecx
lea edx, [ebx + 1]
mov ecx, edi
and ecx, edx
mov edi, 0xfffffffe
sub edi, ebx
and edi, dword [esi]
sub ecx, edi
mov edi, dword [esi]
xor edi, edx
add edi, ecx
or edx, dword [esi]
add edx, edi
sub edx, ebx
mov ecx, eax
and ecx, 0xc85e503b
add ecx, eax
not eax
and eax, 0xc85e503b
add eax, ecx
lea ecx, [edx + edx]
add ecx, 0xfffffffe
mov edi, edx
sub edi, ecx
lea ecx, [edx + edi]
add ecx, 0xffffffff
lea ecx, [edx + ecx - 1]
lea edx, [eax + ecx]
add eax, ecx
add eax, 1
mov dword [esi + 0x24], eax
mov ecx, eax
and ecx, 0x37a1afc4
add ecx, edx
add ecx, 1
not eax
and eax, 0xc85e503b
add eax, ecx
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x3c]
mov edx, eax
and edx, 0x90f7c996
add eax, eax
mov ecx, dword [esi + 8]
lea edi, [ecx + eax]
add edi, 1
and ecx, 0x6f083669
or ecx, edx
mov eax, ecx
and eax, 0x6f083669
mov edx, ecx
xor edx, 0x6f083669
add edx, eax
or ecx, 0x90f7c996
sub edx, ecx
add edx, 0x90f7c996
mov ebx, dword [esi]
mov eax, ebx
and eax, edx
sub eax, ebx
mov ecx, ebx
or ecx, edx
not ecx
add ecx, ecx
sub eax, ecx
xor edi, ebx
and edi, ebx
xor ebx, edx
mov ecx, ebx
not ecx
add ecx, eax
not edx
add edx, ecx
or edx, ebx
mov eax, dword [esi + 0x24]
xor eax, 0x37a1afc4
mov ecx, dword [esi + 0x40]
lea ebx, [ecx + eax]
mov dword [esi], ebx
lea ebx, [eax + ecx]
add ebx, 0xfaee4f40
mov ecx, edx
neg ecx
lea eax, [edx - 1]
or eax, ecx
and eax, ebx
mov ecx, dword [esi]
add eax, ecx
add eax, 0xfaee4f40
sub eax, edx
not ebx
lea ecx, [eax + ebx]
mov dword [esi], ecx
add eax, ebx
add eax, 0x3cb36086
mov dword [esi + 8], eax
mov ebx, edi
not ebx
mov ecx, ebx
and ecx, 0xec59c261
mov edx, ebx
and edx, 0x13a63d9e
mov eax, ecx
sub eax, edx
add eax, ebx
sub eax, ecx
and edi, 0x13a63d9e
mov ecx, eax
xor ecx, edi
mov edx, eax
or edx, edi
add edx, ecx
not ecx
add ecx, edx
mov edx, edi
not edx
add ecx, edx
or edx, eax
sub ecx, edx
and edi, eax
add edi, ecx
add edi, 1
mov edx, dword [esi + 8]
mov eax, edx
and edx, 0x23c9fdc3
mov ecx, dword [esi]
add ecx, edx
add ecx, 0x3cb36086
not eax
and eax, 0x23c9fdc3
add eax, ecx
mov ecx, edi
xor edi, 0xec59c261
and edi, eax
lea edx, [eax + eax]
sub edx, edi
xor ecx, 0x13a63d9e
add edx, ecx
mov edi, eax
or edi, ecx
not edi
add edi, edx
xor eax, ecx
lea ecx, [edi + eax]
add eax, edi
add eax, 1
not eax
lea eax, [eax + ecx*2]
add eax, 2
imul eax, eax, 0x30709fd7
lea ecx, [eax + 0x17e06412]
add eax, eax
add eax, 0x2fc0c824
sub ecx, eax
lea eax, [ecx + 0x5ce3f4c5]
add ecx, ecx
add ecx, 0xb9c7e98a
sub ecx, eax
not eax
add ecx, eax
add ecx, eax
imul ecx, ecx, 0x2c79c3e7
mov eax, 0xa70c7832
sub eax, ecx
mov edx, eax
and edx, 0xfdbf133d
lea edi, [edx + edx]
sub edi, ecx
add ecx, 0x58f387cd
and ecx, 0x240ecc2
add ecx, edi
xor eax, 0xfdbf133d
add eax, ecx
not edx
add eax, edx
add eax, 0xa4cb8b71
not eax
lea ecx, [eax + eax]
sub ecx, eax
add ecx, 1
cmp dword [esi + 0x18], ecx
mov eax, 0x84ecb649
mov ecx, 0xb5a4d1a1
cmove eax, ecx
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [0x10071960]
mov ecx, dword [0x10071964]
mov edx, eax
or edx, ecx
mov edi, eax
and eax, ecx
not ecx
add ecx, edx
not edi
add edi, ecx
mov edx, dword [0x1007bad8]
add eax, edi
add eax, 0xc
cmp dword [0x1007bad4], eax
setl al
mov edi, edx
and edi, 1
add edi, edi
lea ecx, [edx + edx]
sub ecx, edi
mov edi, edx
xor edi, 1
sub ecx, edi
add ecx, 2
imul ecx, edx
test cl, 1
sete dl
mov ah, al
xor ah, dl
add ah, dl
or dl, al
add ah, dl
not dl
add dl, ah
or cl, al
add cl, dl
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 4]
mov dword [eax], 0x815f2629
test cl, 1
jne 0x10016220
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [eax], edi
mov eax, dword [eax]
push 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x100781fd
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
mov ecx, dword [esi + 0x20]
push dword [ecx]
call eax
mov dword [esi + 0x24], eax
mov edx, dword [0x10071670]
mov ecx, dword [0x10071674]
mov dword [esi + 0x4c], ecx
mov ebx, ecx
not ebx
mov dword [esi + 8], ebx
mov eax, edx
and eax, ecx
mov dword [esi], eax
sub eax, edx
mov ecx, edx
xor ecx, ebx
mov dword [esi + 0x3c], ecx
add eax, ecx
mov edi, edx
or edi, ebx
mov dword [esi + 0x40], edi
add eax, edi
sub eax, ecx
and eax, edx
mov ebx, edx
mov ecx, eax
xor ecx, 0x96220276
add eax, ecx
sub eax, ecx
lea ecx, [eax - 0x69ddfd8a]
mov edx, ecx
and edx, 0x69ddfd8a
lea eax, [eax + edx*2]
add eax, 0x96220276
not ecx
and ecx, 0x69ddfd8a
lea edx, [eax + ecx*2]
mov dword [esi + 0x38], edx
lea edi, [eax + ecx*2]
add edi, 0x96220276
mov dword [esi + 0x18], ebx
mov eax, ebx
not eax
lea edx, [ebx + eax]
mov ecx, edx
not ecx
mov ebx, eax
mov dword [esi + 0x54], eax
or eax, ecx
add eax, ebx
add eax, edx
or edx, ebx
sub eax, edx
add eax, dword [esi + 0x18]
and ecx, ebx
lea edx, [eax + ecx]
add eax, ecx
add eax, 1
not eax
lea eax, [edx + eax*2]
add eax, 2
not edi
mov ecx, edi
and ecx, 0xc85e503b
mov edx, dword [esi + 0x38]
add ecx, edx
add ecx, 0x96220276
or edi, 0x37a1afc4
sub ecx, edi
or eax, dword [esi + 8]
mov edx, eax
not edx
add eax, edx
add eax, edx
mov edi, ecx
and edi, eax
lea edi, [ecx + edi*2]
lea edx, [edx + edx*2]
sub edi, edx
not eax
or eax, ecx
not eax
lea ecx, [edi + eax*2]
mov dword [esi + 0x38], ecx
lea eax, [edi + eax*2]
add eax, 0x37a1afc6
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x4c]
mov eax, ecx
or eax, 0x6f083669
add ecx, eax
not eax
lea eax, [ecx + eax*2]
add eax, 0x6f08366b
mov ebx, dword [esi]
mov ecx, dword [esi + 8]
add ebx, ecx
and ecx, 0x90f7c996
or eax, ecx
mov edx, eax
and edx, 0x90f7c996
mov ecx, eax
not ecx
mov edi, ecx
and edi, 0x6f083669
sub edx, edi
mov edi, eax
xor edi, 0x6f083669
add edi, edx
or eax, 0x90f7c996
sub edi, eax
or ecx, 0x6f083669
add ecx, edi
mov edi, dword [esi + 0x18]
mov eax, edi
xor eax, ecx
lea eax, [eax + eax*2]
add eax, edi
mov edx, edi
or edx, ecx
add edx, edx
sub eax, edx
add ebx, dword [esi + 0x3c]
sub ebx, dword [esi + 0x40]
and ebx, edi
mov dword [esi], ebx
mov ebx, edi
and ebx, ecx
or ecx, dword [esi + 0x54]
add ecx, eax
lea eax, [ebx + ecx]
add eax, 1
mov ecx, ebx
and ecx, eax
mov edx, ebx
xor edx, eax
mov edi, ebx
or ebx, eax
not eax
and edi, eax
sub ecx, edi
add edx, ecx
add ebx, edx
add ebx, eax
mov edi, dword [esi + 0x50]
mov eax, edi
not eax
mov ecx, eax
and ecx, 0x3cb36085
mov edx, dword [esi + 0x38]
lea ecx, [edx + ecx*2]
add ecx, 0x37a1afc6
xor edi, 0x3cb36085
sub ecx, edi
sub ecx, eax
not ebx
lea edx, [ebx + ecx]
add ecx, ebx
add ecx, 0x86993ef5
mov dword [esi + 8], ecx
and ecx, 0xc34c9f7a
add ecx, edx
add ecx, 0x86993ef5
mov eax, dword [esi]
mov edx, eax
and edx, 0x13a63d9e
add edx, edx
mov ebx, eax
or eax, 0xec59c261
sub edx, eax
not ebx
and ebx, 0xec59c261
add edx, 0xec59c261
mov edi, ebx
or edi, edx
mov eax, ebx
xor eax, edx
add eax, edi
mov edi, edx
not edi
or edi, ebx
add edi, eax
not ebx
or ebx, edx
lea eax, [ebx + edi]
add eax, 2
mov edx, eax
not edx
mov edi, eax
xor edi, 0x13a63d9e
sub edi, eax
and edx, 0x6c59c261
add edx, edx
sub edi, edx
xor eax, 0xec59c261
lea edx, [edi + eax]
add edx, 0xec59c261
mov edi, dword [esi + 8]
not edi
and edi, 0xc34c9f7a
lea eax, [ecx + edi]
add ecx, edi
add ecx, 0x9d30bece
mov edi, ecx
and edi, edx
add eax, edi
add eax, 0x9d30bece
add eax, edx
not ecx
add eax, ecx
or ecx, edx
sub eax, ecx
mov ecx, 0x260aea86
sub ecx, eax
lea edx, [eax - 0x260aea87]
and edx, 0xfdbf133d
sub edx, eax
or ecx, 0x240ecc2
lea eax, [edx + ecx]
add eax, 0x23c9fdc3
not eax
cmp dword [esi + 0x24], eax
mov eax, 0x84ecb649
mov ecx, 0xb5a4d1a1
cmove eax, ecx
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [esi + 0x14]
mov dword [eax], 0
mov eax, dword [esi + 4]
mov dword [eax], 0x815f2629
jmp 0x10015a73
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x28]
mov dword [eax], ecx
mov eax, dword [eax]
push dword [eax]
call fcn.1005f640
add esp, 4
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
cmp dword [ecx], 0
mov ecx, 0xb964c330
mov eax, 0xb5a4d1a1
cmove ecx, eax
mov dword [esi], ecx
mov edx, dword [0x10071980]
mov edi, dword [0x10071984]
mov ecx, edx
xor ecx, edi
not ecx
add ecx, edi
not edx
add ecx, edx
or edx, edi
add edx, edx
sub ecx, edx
add ecx, 0x815f2629
mov edx, dword [0x1007198c]
mov edi, edx
not edi
add edx, edi
add edx, 0xb
mov ebx, dword [0x1007bad0]
cmp dword [0x1007bacc], edx
mov edi, ebx
not edi
setl byte [esi + 8]
add edi, 2
imul edi, ebx
mov edx, dword [0x10071990]
mov ebx, edx
not ebx
mov eax, dword [0x10071994]
and ebx, eax
add ebx, edx
or edx, eax
sub ebx, edx
and edi, 1
cmp edi, ebx
mov eax, dword [esi + 0x10]
mov edx, dword [esi]
mov dword [eax], edx
mov eax, dword [esi + 4]
mov dword [eax], ecx
sete al
or al, byte [esi + 8]
mov eax, dword [esi + 0x14]
mov dword [eax], 0
jne 0x10016220
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x28]
mov dword [eax], ecx
mov eax, dword [eax]
push dword [eax]
call fcn.1005f640
add esp, 4
mov ecx, dword [esi + 0x34]
mov dword [ecx], eax
cmp dword [ecx], 0
mov eax, 0xb964c330
mov ecx, 0xb5a4d1a1
cmove eax, ecx
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [0x10071ae8]
mov ecx, dword [0x10071aec]
mov edi, eax
xor edi, ecx
mov edx, edi
not edx
add edx, edi
mov edi, ecx
not edi
add edx, edi
or edi, eax
sub edx, edi
and eax, ecx
add eax, edx
add eax, 0x815f262a
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [esi + 0x14]
mov dword [eax], 0
jmp 0x10016050
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
push 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x10078214
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esi + 0x20]
push dword [ecx]
call eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov eax, dword [esi + 0x1c]
mov dword [eax], edi
mov edx, dword [0x100719e0]
mov ecx, dword [0x100719e4]
mov eax, edx
xor eax, ecx
not eax
add eax, edx
not ecx
add eax, ecx
or ecx, edx
add ecx, ecx
sub eax, ecx
add eax, 0x815f2629
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov ecx, dword [0x100719e8]
mov edx, dword [0x100719ec]
mov eax, ecx
xor eax, ecx
not eax
and eax, edx
xor eax, ecx
xor ecx, edx
mov edx, dword [0x1007bac8]
sub eax, ecx
add eax, 0xa
cmp dword [0x1007bac4], eax
setl al
setge cl
lea ebx, [edx - 1]
imul ebx, edx
test bl, 1
sete dl
add cl, dl
and al, dl
not al
add al, cl
mov ecx, dword [esi + 0x10]
mov dword [ecx], 0x3e5f3901
test al, 1
je 0x1001628f
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [0x10071a50]
mov ecx, dword [0x10071a54]
mov edx, eax
xor edx, ecx
lea edx, [eax + edx*2]
mov edi, eax
or edi, ecx
add edi, edi
sub edx, edi
mov edi, eax
not edi
or edi, ecx
add edi, edx
mov edx, dword [0x1007bac0]
and eax, ecx
add eax, edi
add eax, 0xb
cmp dword [0x1007babc], eax
setge al
setl cl
mov edi, edx
and edi, 1
mov ebx, edx
and ebx, 0xfffffffe
sub edi, ebx
add edi, edx
mov ebx, edx
xor ebx, 1
add ebx, edi
imul ebx, edx
test bl, 1
sete dl
mov ah, cl
xor ah, dl
or cl, dl
add cl, ah
add cl, bl
add cl, al
test cl, 1
je 0x10016220
jmp 0x10016310
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
push 0x100781f0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x10078214
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [esi + 0x20]
push dword [ecx]
call eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov ecx, dword [0x10071b00]
mov edx, dword [0x10071b04]
mov eax, ecx
and eax, edx
not edx
add eax, edx
or edx, ecx
sub eax, edx
add eax, 0x3e5f3901
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [esi + 0x1c]
mov dword [eax], edi
mov eax, dword [0x10071b08]
mov ecx, dword [0x10071b0c]
mov edx, eax
and edx, ecx
mov edi, eax
or edi, ecx
not edi
add edi, edx
xor eax, ecx
add eax, edi
add eax, 0x815f262a
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x1001616e
mov ebx, dword [esi + 4]
mov eax, dword [0x100716c0]
mov ecx, dword [0x100716c4]
mov edi, eax
not edi
or edi, ecx
add edi, eax
and eax, ecx
mov edx, dword [0x1007bab8]
not eax
add eax, edi
add eax, 0xc
cmp dword [0x1007bab4], eax
setl cl
mov edi, edx
and edi, 0xfffffffe
add edi, edx
mov eax, edx
xor eax, 1
sub edi, eax
mov eax, edx
or eax, 1
add edi, eax
not eax
add eax, edi
mov edi, edx
or edi, 0xfffffffe
sub eax, edi
add eax, 1
imul eax, edx
test al, 1
sete dl
mov ch, cl
or ch, dl
add ch, cl
xor cl, dl
not cl
add cl, ch
add cl, al
mov eax, dword [ebx]
add cl, 1
test cl, 1
jne 0x10016313
cmp eax, 0x1b78fbc7
jle 0x10016420
cmp eax, 0x5e0c9dbd
jle 0x100164a0
cmp eax, 0x658eea48
jle 0x100165ef
cmp eax, 0x658eea49
je 0x100167c4
cmp eax, 0x697f1b2d
je 0x1001682c
cmp eax, 0x6a180281
jne 0x10014d00
mov eax, dword [0x10071830]
mov ecx, dword [0x10071834]
mov edx, ecx
not edx
or edx, ecx
and edx, eax
not eax
add eax, edx
add eax, 0xb
cmp dword [0x1007bab0], eax
mov edx, dword [0x1007baac]
setl al
setge cl
lea ebx, [edx - 1]
imul ebx, edx
test bl, 1
sete dl
mov ah, cl
and ah, dl
mov ch, al
or ch, dl
add ch, ah
xor al, dl
not al
add al, ch
or cl, dl
add cl, al
test cl, 1
jne 0x100155ac
jmp 0x10015629
cmp eax, 0xd28daf02
jg 0x10016550
cmp eax, 0x8523d4f3
jle 0x10016695
cmp eax, 0x8523d4f4
je 0x1001687c
cmp eax, 0x9a333d31
je 0x100168d5
cmp eax, 0xa776e54f
jne 0x10014d00
mov edx, dword [0x1007baa8]
cmp dword [0x1007baa4], 0xa
setl cl
mov eax, edx
not eax
and eax, 1
lea eax, [edx + eax*2]
mov edi, edx
xor edi, 1
sub eax, edi
add eax, edx
imul eax, edx
test al, 1
sete dl
or dl, cl
and cl, al
add cl, dl
not dl
add dl, cl
add dl, al
test dl, 1
jne 0x10014db5
jmp 0x10014e12
cmp eax, 0x27234f50
jle 0x1001670c
cmp eax, 0x27234f51
je 0x10016949
cmp eax, 0x28667b03
je 0x10016998
cmp eax, 0x340f1494
jne 0x10014d00
mov edx, dword [0x1007baa0]
mov ecx, dword [0x10071998]
mov edi, dword [0x1007199c]
mov eax, edi
not eax
and eax, ecx
add eax, edi
or ecx, edi
sub eax, ecx
add eax, 0xa
cmp dword [0x1007ba9c], eax
setl al
setge ah
mov edi, 1
sub edi, edx
imul edi, edx
mov edx, dword [str._ek_]
mov ebx, edx
not ebx
mov ecx, dword [0x100719a4]
and ebx, ecx
add ebx, edx
or edx, ecx
sub ebx, edx
and edi, 1
cmp edi, ebx
setne dl
sete cl
and ah, cl
mov ch, al
xor ch, cl
add ch, ah
or al, cl
add ch, al
not al
add al, ch
add al, dl
add al, 1
test al, 1
je 0x100150e8
jmp 0x10015204
cmp eax, 0xf0ff5684
jle 0x10016753
cmp eax, 0xf0ff5685
je 0x10016a0e
cmp eax, 0xf1824947
je 0x10016a71
cmp eax, 0xf37c2357
jne 0x10014d00
mov ecx, dword [0x10071718]
mov edx, dword [0x1007171c]
mov eax, ecx
not eax
and eax, edx
add eax, ecx
or ecx, edx
sub eax, ecx
add eax, 0xa
cmp dword [0x1007ba98], eax
mov edx, dword [0x1007ba94]
setl al
lea ecx, [edx + 1]
imul ecx, edx
mov edx, dword [0x10071724]
mov edi, edx
not edi
mov ebx, dword [0x10071720]
and edi, ebx
add edi, edx
or ebx, edx
sub edi, ebx
and ecx, 1
cmp ecx, edi
sete cl
setne dl
and dl, al
add dl, al
mov ah, al
or ah, cl
add dl, ah
not ah
add ah, dl
xor al, cl
sub ah, al
test ah, 1
je 0x10014f10
jmp 0x10014fa9
cmp eax, 0x5e0c9dbe
je 0x10016a9d
cmp eax, 0x5e6987fe
jne 0x10016c3a
mov edx, dword [0x1007ba90]
mov eax, dword [0x10071740]
mov ecx, dword [0x10071744]
mov edi, eax
not edi
and edi, ecx
not ecx
or ecx, eax
lea eax, [edi + ecx]
add eax, 0xb
cmp dword [0x1007ba8c], eax
setge cl
setl ch
mov edi, edx
not edi
add edi, edx
add edi, edx
add edi, 0x18b8130a
imul edi, edx
mov ebx, dword [0x10071748]
mov dword [esi], ebx
mov edx, dword [0x1007174c]
and ebx, edx
lea eax, [ebx + ebx]
mov dword [esi + 8], eax
mov eax, edx
sub eax, dword [esi + 8]
not edx
or edx, dword [esi]
add edx, eax
lea eax, [ebx + edx]
add eax, 1
and edi, 1
cmp edi, eax
setne dl
sete al
mov ah, ch
and ah, al
and cl, al
add cl, ah
or al, ch
add al, cl
or dl, ch
add dl, al
sub dl, ah
test dl, 1
je 0x100152e4
jmp 0x10015345
cmp eax, 0x807dc1b2
je 0x10016b2a
cmp eax, 0x815f2629
jne 0x10014d00
mov edx, dword [0x1007ba88]
mov eax, dword [0x10071a1c]
mov ecx, dword [0x10071a18]
xor ecx, eax
mov edi, ecx
sub edi, eax
not ecx
add ecx, edi
add eax, ecx
add eax, 0xb
cmp dword [0x1007ba84], eax
setl al
lea ecx, [edx + 1]
imul ecx, edx
mov edx, dword [0x10071a20]
mov ebx, dword [0x10071a24]
mov edi, edx
or edi, ebx
not edi
add edi, ebx
not edx
or edx, ebx
sub edi, edx
and ecx, 1
cmp ecx, edi
sete cl
or cl, al
cmp cl, 1
je 0x10014d6b
jmp 0x10014d9e
cmp eax, 0x1b78fbc8
je 0x10016b86
cmp eax, 0x1e2bc54e
jne 0x10014d00
mov ecx, dword [0x1007ba80]
cmp dword [0x1007ba7c], 0xa
setl dl
mov eax, ecx
not eax
add eax, ecx
add eax, ecx
imul eax, ecx
test al, 1
sete al
or al, dl
add al, 1
test al, 1
je 0x10014fe5
jmp 0x1001509a
cmp eax, 0xd28daf03
je 0x10016bdb
cmp eax, 0xe61041f7
jne 0x10014d00
mov edi, dword [0x1007ba78]
cmp dword [0x1007ba74], 0xa
setge al
setl ah
lea edx, [edi - 1]
imul edx, edi
mov ecx, dword [str._:2M9]
mov ebx, dword [0x10071814]
mov edi, ecx
and edi, ebx
not ebx
add edi, ebx
or ebx, ecx
sub edi, ebx
and edx, 1
cmp edx, edi
setne dl
sete cl
mov ch, ah
or dl, ah
or ah, cl
xor ch, cl
not ch
add ch, ah
add dl, ch
or al, cl
add al, dl
test al, 1
je 0x10014e56
jmp 0x10014ed2
mov eax, dword [0x1007ba70]
mov edi, dword [0x10071920]
mov edx, dword [0x10071924]
mov ecx, edi
xor ecx, edx
not ecx
add ecx, edi
not edx
add ecx, edx
or edx, edi
add edx, edx
sub ecx, edx
add ecx, 0xa
cmp dword [0x1007ba6c], ecx
setl cl
lea edx, [eax - 1]
imul edx, eax
mov edi, dword [0x10071928]
mov eax, dword [0x1007192c]
mov ebx, edi
and ebx, eax
not edi
and edi, eax
add edi, edi
lea edi, [edi + ebx*2]
add eax, eax
sub edi, eax
and edx, 1
cmp edx, edi
sete al
or al, cl
cmp al, 1
je 0x100159a8
jmp 0x10015a44
mov ecx, dword [0x10071768]
mov edx, dword [str._rpoz]
mov eax, ecx
xor eax, ecx
not eax
and eax, edx
xor eax, ecx
xor ecx, edx
sub eax, ecx
add eax, 0xa
cmp dword [0x1007ba68], eax
mov eax, dword [0x1007ba64]
setl cl
setge dl
lea ebx, [eax - 1]
imul ebx, eax
test bl, 1
sete al
add dl, al
and cl, al
not cl
add cl, dl
test cl, 1
jne 0x10015363
jmp 0x100153ac
mov edx, dword [0x100719c8]
mov ecx, dword [0x100719cc]
mov eax, edx
and eax, ecx
mov edi, edx
not edi
and edi, ecx
mov ebx, eax
sub ebx, edi
not ecx
or ecx, edx
sub ebx, ecx
not eax
add eax, ebx
add eax, 0xa
cmp dword [0x1007ba60], eax
mov ecx, dword [0x1007ba5c]
setl dl
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete cl
and al, dl
add al, dl
xor cl, dl
not cl
add cl, al
test cl, 1
je 0x1001616e
jmp 0x1001628f
mov eax, dword [0x10071790]
mov ecx, dword [0x10071794]
mov edx, eax
or edx, ecx
sub edx, ecx
mov edi, eax
not edi
add edi, edx
mov edx, dword [0x1007ba58]
and eax, ecx
add eax, edi
add eax, 0xb
cmp dword [0x1007ba54], eax
setl al
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [str._r_p:]
mov edi, edx
not edi
mov ebx, dword [0x1007179c]
and edi, ebx
add edi, edx
or edx, ebx
sub edi, edx
and ecx, 1
cmp ecx, edi
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 0x100153e8
jmp 0x10015461
cmp dword [0x1007ba50], 0xa
mov edx, dword [0x1007ba4c]
setl byte [esi]
lea ecx, [edx - 1]
imul ecx, edx
mov edi, dword [0x100717c4]
mov edx, edi
not edx
mov eax, dword [0x100717c0]
mov ebx, eax
and ebx, edx
sub ebx, edi
or eax, edi
add ebx, eax
not eax
lea eax, [ebx + eax*2]
add edx, edx
sub eax, edx
and ecx, 1
cmp ecx, eax
sete al
or al, byte [esi]
cmp al, 1
je 0x100154a1
jmp 0x10015570
mov eax, dword [0x100718a8]
mov ecx, dword [0x100718ac]
mov edx, eax
and edx, ecx
add edx, edx
mov edi, eax
sub edi, edx
mov edx, dword [0x1007ba48]
add edi, ecx
xor eax, ecx
sub edi, eax
add edi, 0xa
cmp dword [0x1007ba44], edi
setl byte [esi + 8]
lea ecx, [edx + 1]
imul ecx, edx
mov edi, dword [0x100718b0]
mov dword [esi], edi
mov edx, dword [0x100718b4]
xor edi, edx
mov eax, edx
sub eax, edi
mov ebx, dword [esi]
or ebx, edx
not ebx
add ebx, eax
not edi
add edi, edi
sub ebx, edi
not edx
or edx, dword [esi]
add edx, ebx
and ecx, 1
cmp ecx, edx
sete al
or al, byte [esi + 8]
add al, 1
test al, 1
je 0x10015753
jmp 0x100157f8
mov edx, dword [0x1007ba40]
cmp dword [0x1007ba3c], 0xa
setge al
setl cl
mov edi, edx
xor edi, 1
mov ebx, edx
sub ebx, edi
mov edi, edx
not edi
and edi, 0xfffffffe
add edi, ebx
mov ebx, edx
xor ebx, 0x7ffffffe
add ebx, ebx
sub edi, ebx
mov ebx, edx
or ebx, 0xfffffffe
add ebx, edi
add ebx, 2
imul ebx, edx
test bl, 1
sete dl
mov ah, cl
or bl, cl
xor cl, dl
or ah, dl
add ah, cl
add bl, ah
or al, dl
add al, bl
add al, 1
test al, 1
je 0x1001525a
jmp 0x100152b0
mov eax, dword [0x1007ba38]
cmp dword [0x1007ba34], 0xa
setl cl
lea edx, [eax - 1]
imul edx, eax
test dl, 1
sete al
or al, cl
add al, 1
test al, 1
je 0x10016050
jmp 0x10016105
mov eax, dword [0x100718f8]
mov ecx, dword [0x100718fc]
mov edx, ecx
not edx
and edx, eax
add edx, edx
lea edi, [eax + eax]
sub edi, edx
mov edx, eax
or edx, ecx
not edx
lea edi, [edi + edx*2]
mov edx, dword [0x1007ba30]
xor eax, ecx
not eax
add eax, eax
sub edi, eax
add edi, 0xa
cmp dword [0x1007ba2c], edi
setl al
mov ecx, edx
not ecx
add ecx, edx
add ecx, edx
add ecx, 2
imul ecx, edx
mov edx, dword [0x10071900]
mov edi, edx
not edi
mov ebx, dword [0x10071904]
and edi, ebx
sub edi, ebx
not ebx
sub edi, ebx
or ebx, edx
add ebx, edi
and ecx, 1
cmp ecx, ebx
setne cl
sete dl
mov ah, al
or cl, al
and al, dl
or ah, dl
add ah, dl
add cl, ah
not al
add al, cl
test al, 1
jne 0x100158fa
jmp 0x10015975
mov eax, dword [0x10071880]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x1007ba28], eax
mov edx, dword [0x1007ba24]
setge al
setl cl
mov edi, edx
not edi
and edi, 1
add edi, edi
lea edi, [edi + edx*2]
mov ebx, edx
xor ebx, 0xfffffffe
add ebx, edi
add ebx, 1
imul ebx, edx
test bl, 1
sete dl
mov ah, cl
or ah, dl
add ah, bl
or cl, bl
add cl, ah
add cl, al
or al, dl
add al, cl
test al, 1
jne 0x10015667
jmp 0x10015716
mov eax, dword [0x10071948]
mov ecx, dword [0x1007194c]
mov edx, eax
and edx, ecx
mov edi, eax
xor edi, ecx
add edi, edx
or eax, ecx
mov edx, dword [0x1007ba20]
not eax
add eax, edi
add eax, 0xb
cmp dword [0x1007ba1c], eax
setl al
setge cl
lea ebx, [edx + 1]
imul ebx, edx
test bl, 1
sete dl
and cl, dl
add cl, al
or al, dl
add cl, al
not al
add al, cl
test al, 1
je 0x10015a73
jmp 0x10015d7b
mov eax, dword [0x100718d0]
mov ecx, dword [0x100718d4]
mov edx, eax
or edx, ecx
mov edi, eax
sub edi, edx
add edi, ecx
and eax, ecx
not eax
add eax, edi
add eax, 0xb
cmp dword [0x1007ba18], eax
mov edx, dword [0x1007ba14]
setl cl
mov eax, edx
not eax
and eax, 1
lea eax, [eax + edx*2]
mov edi, edx
or edi, 1
sub eax, edi
add eax, 1
imul eax, edx
mov edx, eax
and al, cl
and edx, 1
cmp edx, 1
adc al, 0
add al, 1
test al, 1
je 0x10015839
jmp 0x100158ce
cmp eax, 0x60581cde
jne 0x10014d00
nop word cs:[eax + eax]
nop
mov eax, dword [0x10071a08]
mov ecx, dword [0x10071a0c]
mov edx, eax
and edx, ecx
mov edi, eax
xor edi, ecx
add edi, edx
mov edx, dword [0x1007ba10]
or eax, ecx
not eax
add eax, edi
add eax, 0xb
cmp dword [0x1007ba0c], eax
setl al
setge cl
mov edi, edx
or edi, 1
add edi, edx
mov ebx, edx
not ebx
add ebx, edi
add ebx, edx
add ebx, 0xffffffff
imul ebx, edx
test bl, 1
sete dl
and cl, dl
add cl, al
or al, dl
add cl, al
not al
add al, cl
mov ecx, dword [esi + 0x1c]
mov edi, dword [ecx]
test al, 1
jne 0x10016c50
mov ecx, dword [esi + 0x58]
xor ecx, ebp
call fcn.1005c6e0
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret