Function at 0x1005a6b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
mov eax, dword [0x1007855c]
mov ecx, dword [0x10078560]
mov edx, eax
not edx
mov esi, edx
and esi, ecx
or eax, ecx
not eax
add eax, esi
sub eax, edx
add eax, 0xa
cmp dword [0x1007c194], eax
mov eax, dword [0x1007c198]
lea ecx, [eax + eax]
mov edx, eax
not edx
lea ecx, [edx + ecx + 0x71c2dd34]
setl dl
imul ecx, eax
test cl, 1
sete al
mov ecx, edx
and cl, al
xor dl, al
add dl, cl
add dl, 1
test dl, 1
jne 0x1005a7f5
push eax
mov dword [ebp - 0x18], esp
push eax
mov dword [ebp - 0x48], esp
push eax
mov esi, esp
push eax
mov edi, esp
push eax
mov edx, esp
push eax
mov ecx, esp
mov ebx, dword [ebp + 8]
mov dword [ecx], ebx
mov dword [ebp - 0x58], ecx
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [ebp - 0x4c], edx
mov dword [edx], eax
lea eax, [ebx + 4]
mov dword [edi], eax
mov dword [ebp - 0x50], edi
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [ebp - 0x54], esi
mov dword [esi], eax
mov eax, dword [0x1007856c]
mov ecx, dword [0x10078570]
mov edx, ecx
and edx, eax
not ecx
add edx, ecx
or ecx, eax
sub edx, ecx
cmp dword [ebp + 0xc], edx
mov eax, dword [ebp - 0x48]
sete byte [eax]
push eax
mov edi, esp
mov ecx, dword [0x10078574]
mov eax, dword [0x10078578]
mov edx, eax
not edx
mov esi, ecx
and esi, edx
xor eax, ecx
not eax
add eax, esi
or edx, ecx
sub eax, edx
add eax, 0xb8b3342b
mov dword [ebp - 0x30], edi
mov dword [edi], eax
push eax
mov dword [ebp - 0x2c], esp
push eax
mov dword [ebp - 0x28], esp
push eax
mov dword [ebp - 0x24], esp
push eax
mov dword [ebp - 0x3c], esp
push eax
mov dword [ebp - 0x38], esp
push eax
mov eax, esp
cmp dword [0x1007be4c], 0xa
mov edx, dword [0x1007be50]
setl byte [ebp - 0x10]
lea ecx, [edx - 1]
imul ecx, edx
mov edx, dword [0x1007858c]
mov esi, dword [0x10078590]
mov edi, esi
not edi
mov ebx, edx
or ebx, edi
sub ebx, edi
not edx
add ebx, edx
or edx, esi
sub ebx, edx
and ecx, 1
cmp ecx, ebx
sete cl
or cl, byte [ebp - 0x10]
mov dword [eax], 0xfc333d39
add cl, 1
test cl, 1
je 0x1005a861
push eax
push eax
mov eax, esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov esi, esp
push eax
mov edi, esp
mov ebx, dword [ebp + 8]
mov dword [edi], ebx
mov edi, dword [edi]
mov edi, dword [edi]
mov dword [esi], edi
lea esi, [ebx + 4]
mov dword [edx], esi
mov edx, dword [edx]
mov edx, dword [edx]
mov dword [ecx], edx
cmp dword [ebp + 0xc], 0
sete byte [eax]
push eax
mov eax, esp
mov ecx, dword [0x100787d4]
mov edx, dword [0x100787d8]
mov esi, ecx
and esi, edx
mov edi, ecx
xor edi, edx
mov ebx, edi
sub ebx, esi
or ecx, edx
add ecx, ebx
not edi
lea ecx, [ecx + edi*2]
add ecx, 0xb8b3342d
mov dword [eax], ecx
push eax
push eax
push eax
push eax
push eax
push eax
mov eax, esp
mov dword [eax], 0xfc333d39
jmp 0x1005a710
mov edi, eax
mov dword [ebp - 0x10], eax
nop word cs:[eax + eax]
mov eax, dword [edi]
cmp dword [0x1007bd04], 0xa
mov edx, dword [0x1007bd08]
setl cl
lea ebx, [edx - 1]
imul ebx, edx
test bl, 1
sete ch
mov edx, ecx
and dl, ch
mov dh, cl
xor dh, ch
mov ebx, edx
add bl, dh
or cl, ch
add cl, bl
not dh
add dh, cl
not dl
add dl, dh
test dl, 1
je 0x1005a870
cmp eax, 0x4f8fa4b
jle 0x1005a950
cmp eax, 0x54d50c07
jg 0x1005a9e2
cmp eax, 0x4f8fa4c
je 0x1005aab1
cmp eax, 0x1e73c0ed
je 0x1005aaec
cmp eax, 0x3a52f2b4
jne 0x1005ad20
mov ecx, dword [0x1007bf00]
mov edx, dword [0x100786c4]
mov esi, dword [0x100786c8]
mov eax, edx
or eax, esi
not eax
add eax, edx
not esi
or esi, edx
sub eax, esi
add eax, 0xa
cmp dword [0x1007befc], eax
setl al
setge dl
lea esi, [ecx + ecx]
mov edi, ecx
not edi
lea ebx, [edi + esi]
add ebx, 0x8d412e30
mov edi, dword [ebp - 0x10]
imul ebx, ecx
test bl, 1
sete cl
and dl, cl
add dl, cl
mov ah, al
xor ah, cl
add ah, dl
or al, cl
add ah, al
not al
add al, ah
test al, 1
je 0x1005addd
jmp 0x1005ae3b
cmp eax, 0xd7d2c27b
jle 0x1005aa50
cmp eax, 0xd7d2c27c
je 0x1005ab48
cmp eax, 0xdd6fc673
je 0x1005abaa
cmp eax, 0xfc333d39
jne 0x1005ad20
mov edx, dword [0x1007bee4]
mov eax, dword [0x100785d4]
xor eax, dword [0x100785d8]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x1007bee8], eax
setl al
mov ecx, edx
not ecx
imul ecx, edx
mov esi, dword [0x100785dc]
mov edx, dword [0x100785e0]
mov edi, edx
not edi
mov ebx, esi
and ebx, edi
xor edx, esi
not edx
add edx, ebx
or edi, esi
sub edx, edi
mov edi, dword [ebp - 0x10]
and ecx, 1
cmp ecx, edx
sete cl
or cl, al
add cl, 1
test cl, 1
je 0x1005ad5e
jmp 0x1005adcb
cmp eax, 0x54d50c08
je 0x1005abf7
cmp eax, 0x64bb0639
je 0x1005ac2d
cmp eax, 0x7209474c
jne 0x1005ad20
mov edx, dword [0x1007c168]
cmp dword [0x1007c164], 0xa
setl al
mov ecx, edx
not ecx
imul ecx, edx
and ecx, 1
mov edx, dword [0x1007878c]
mov esi, dword [0x10078790]
mov edi, edx
and edi, esi
not edx
add edi, edx
or edx, esi
sub edi, edx
cmp ecx, edi
mov edi, dword [ebp - 0x10]
sete cl
or cl, al
add cl, 1
test cl, 1
je 0x1005c41d
jmp 0x1005c4ce
cmp eax, 0x9e3a7138
je 0x1005aca5
cmp eax, 0xbce9b675
jne 0x1005ad11
mov eax, dword [0x1007beec]
mov ecx, dword [0x1007864c]
mov edx, dword [0x10078650]
mov esi, ecx
and esi, edx
mov edi, ecx
xor edi, edx
add edi, esi
or ecx, edx
sub edi, ecx
add edi, 0xa
cmp dword [0x1007bef0], edi
mov edi, dword [ebp - 0x10]
setl cl
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
add al, 1
test al, 1
je 0x1005af9f
jmp 0x1005b014
mov ecx, dword [0x1007c10c]
cmp dword [0x1007c110], 0xa
setl al
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
mov edx, eax
and dl, cl
mov ah, al
xor ah, cl
add ah, dl
or al, cl
add ah, al
not al
add al, ah
test al, 1
je 0x1005ae5c
jmp 0x1005aec8
cmp dword [0x1007bf04], 0xa
mov esi, dword [0x1007bf08]
setge al
setl cl
lea edx, [esi + 1]
imul edx, esi
and edx, 1
mov esi, dword [0x1007862c]
mov edi, dword [0x10078630]
mov ebx, esi
not ebx
and ebx, edi
add ebx, esi
or esi, edi
mov edi, dword [ebp - 0x10]
sub ebx, esi
cmp edx, ebx
setne dl
sete ah
mov ch, cl
or dl, cl
add cl, ah
or ch, ah
add ch, cl
add dl, ch
or al, ah
add al, dl
test al, 1
jne 0x1005aefd
jmp 0x1005af66
mov ecx, dword [0x1007bfa0]
mov eax, dword [0x1007873c]
mov edx, dword [0x10078740]
mov esi, eax
not esi
or esi, eax
and esi, edx
sub esi, edx
add esi, 0xa
cmp dword [0x1007bf9c], esi
setl al
mov edx, ecx
not edx
add edx, ecx
add edx, ecx
imul edx, ecx
and edx, 1
mov ecx, dword [0x10078744]
mov esi, dword [0x10078748]
mov edi, ecx
and edi, esi
not ecx
add edi, ecx
or ecx, esi
sub edi, ecx
cmp edx, edi
sete cl
or cl, al
cmp cl, 1
je 0x1005b4fb
jmp 0x1005bcc4
mov eax, dword [0x1007c188]
mov ecx, dword [0x10078674]
mov edx, dword [0x10078678]
mov esi, ecx
not esi
and esi, edx
or edx, ecx
not edx
add edx, esi
add ecx, edx
add ecx, 0xb
cmp dword [0x1007c184], ecx
setl cl
lea edx, [eax - 1]
imul edx, eax
test dl, 1
sete al
mov edx, ecx
and dl, al
xor cl, al
add cl, dl
test cl, 1
jne 0x1005b04f
jmp 0x1005b0e3
mov esi, dword [0x1007c0b0]
cmp dword [0x1007c0ac], 0xa
setge al
setl cl
lea edx, [esi + 1]
imul edx, esi
test dl, 1
sete ah
and dl, cl
or cl, ah
add cl, dl
or al, ah
add al, cl
test al, 1
je 0x1005b1ad
jmp 0x1005b208
mov eax, dword [0x1007869c]
mov ecx, dword [0x100786a0]
mov edx, eax
or edx, ecx
lea esi, [edx + edx]
sub edx, esi
not ecx
or ecx, eax
sub edx, ecx
add eax, edx
add eax, 9
cmp dword [0x1007c1ec], eax
mov edx, dword [0x1007c1f0]
setl al
mov ecx, edx
not ecx
add ecx, edx
add ecx, edx
add ecx, 0x163e13a
imul ecx, edx
mov edx, dword [0x100786a4]
mov edi, dword [0x100786a8]
mov esi, edx
not esi
mov ebx, edi
and ebx, esi
xor edx, edi
not edx
add edx, ebx
or esi, edi
mov edi, dword [ebp - 0x10]
sub edx, esi
and ecx, 1
cmp ecx, edx
sete cl
or cl, al
cmp cl, 1
je 0x1005b101
jmp 0x1005b18f
mov eax, dword [0x10078714]
mov edx, dword [0x10078718]
mov ecx, eax
and ecx, edx
mov esi, edx
not esi
and esi, eax
add esi, esi
sub esi, ecx
not eax
or eax, edx
lea eax, [esi + eax*2]
add eax, ecx
add eax, 0xc
cmp dword [0x1007c038], eax
mov edx, dword [0x1007c034]
setl al
lea ecx, [edx + 1]
imul ecx, edx
mov edx, dword [0x1007871c]
mov esi, dword [0x10078720]
mov edi, edx
and edi, esi
mov ebx, edx
xor ebx, esi
add ebx, edi
or edx, esi
sub ebx, edx
and ecx, 1
cmp ecx, ebx
sete cl
or cl, al
cmp cl, 1
je 0x1005b232
jmp 0x1005b382
cmp eax, 0x8846f183
je 0x1005c4f2
nop dword [eax]
mov eax, dword [0x1007bdb0]
mov ecx, dword [0x100785c4]
mov edx, dword [0x100785c8]
mov esi, ecx
and esi, edx
not ecx
add esi, ecx
or ecx, edx
sub esi, ecx
add esi, 0xa
cmp dword [0x1007bdac], esi
setl cl
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
je 0x1005ad20
jmp 0x1005c490
mov eax, dword [0x100785ec]
mov ecx, dword [0x100785f0]
mov edx, eax
not edx
or edx, eax
and edx, ecx
sub edx, ecx
add edx, 0xa
cmp dword [0x1007bcfc], edx
mov edx, dword [0x1007bd00]
setl al
mov ecx, edx
not ecx
add ecx, edx
add ecx, edx
imul ecx, edx
mov edx, dword [0x100785f4]
mov esi, dword [0x100785f8]
mov edi, edx
and edi, esi
not edx
add edi, edx
or edx, esi
sub edi, edx
and ecx, 1
cmp ecx, edi
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
sete cl
or cl, al
mov dword [edi], 0x4f8fa4c
jne 0x1005c490
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [edi], 0x4f8fa4c
jmp 0x1005ad5e
mov eax, dword [0x100786d4]
mov ecx, dword [0x100786d8]
mov edx, eax
xor edx, eax
not edx
and edx, ecx
xor edx, eax
mov esi, eax
or esi, ecx
not esi
add esi, edx
and eax, ecx
add eax, esi
add eax, 0x54d50c09
mov dword [edi], eax
mov edx, dword [0x1007bce0]
cmp dword [0x1007bcdc], 0xa
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
test cl, 1
jne 0x1005c490
mov eax, dword [0x10078814]
mov ecx, dword [0x10078818]
mov edx, eax
not edx
and edx, ecx
add edx, eax
or eax, ecx
sub edx, eax
add edx, 0x54d50c08
mov dword [edi], edx
jmp 0x1005addd
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0xc2ce2d2f
mov edx, 0x1e73c0ed
mov eax, 0x64bb0639
cmovl edx, eax
mov edi, dword [0x1007bcf8]
cmp dword [0x1007bcf4], 0xa
setge ah
setl al
lea esi, [edi - 1]
imul esi, edi
mov edi, dword [0x1007861c]
mov ebx, dword [0x10078620]
mov ecx, edi
or ecx, ebx
sub ecx, ebx
not edi
or edi, ebx
add ecx, edi
add ecx, 1
mov edi, dword [ebp - 0x10]
and esi, 1
cmp esi, ecx
mov dword [edi], edx
sete cl
or al, cl
or ah, cl
add cl, al
not al
add al, cl
add al, ah
test al, 1
jne 0x1005c490
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x100787f0]
mov edx, ecx
not edx
or edx, ecx
not edx
and edx, dword [0x100787ec]
add edx, 0xc2ce2d2f
cmp eax, edx
mov eax, 0x1e73c0ed
mov ecx, 0x64bb0639
cmovl eax, ecx
mov dword [edi], eax
jmp 0x1005ae5c
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x10078634]
mov edx, dword [0x10078638]
mov esi, ecx
or esi, edx
not esi
lea esi, [esi + esi*2]
add esi, ecx
add esi, edx
mov edi, ecx
xor edi, edx
not edi
add edi, edi
sub esi, edi
mov edi, dword [ebp - 0x10]
and ecx, edx
add ecx, esi
add ecx, 0x20d401c8
cmp eax, ecx
mov eax, 0xbce9b675
mov ecx, 0xdd6fc673
cmovl eax, ecx
mov dword [edi], eax
mov eax, dword [0x1007bcf0]
cmp dword [0x1007bcec], 0xa
setl cl
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete al
or al, cl
jne 0x1005c490
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x100787f4]
mov edx, dword [0x100787f8]
mov esi, ecx
or esi, edx
sub esi, edx
not ecx
or ecx, edx
add ecx, esi
add ecx, 0x20d401c8
cmp eax, ecx
mov eax, 0xbce9b675
mov ecx, 0xdd6fc673
cmovl eax, ecx
mov dword [edi], eax
jmp 0x1005aefd
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0x20d401c7
mov eax, 0x3a52f2b4
mov ecx, 0xd7d2c27c
cmove eax, ecx
mov esi, dword [0x1007bce4]
mov ecx, dword [0x10078664]
mov edx, ecx
not edx
add edx, edx
lea ecx, [edx + ecx*2]
add ecx, 0xc
cmp dword [0x1007bce8], ecx
setl byte [ebp - 0x14]
lea edx, [esi - 1]
imul edx, esi
mov esi, dword [0x1007866c]
mov edi, esi
not edi
mov ebx, dword [0x10078670]
mov ecx, edi
and ecx, ebx
xor esi, ebx
sub esi, ecx
or edi, ebx
lea ecx, [esi + edi]
add ecx, 1
mov edi, dword [ebp - 0x10]
and edx, 1
cmp edx, ecx
mov dword [edi], eax
sete al
or al, byte [ebp - 0x14]
jne 0x1005c490
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov edx, dword [0x100787fc]
mov esi, dword [0x10078800]
mov ecx, edx
or ecx, esi
not ecx
add ecx, esi
not edx
or edx, esi
sub ecx, edx
add ecx, 0x20d401c7
cmp eax, ecx
mov eax, 0x3a52f2b4
mov ecx, 0xd7d2c27c
cmove eax, ecx
mov dword [edi], eax
jmp 0x1005af9f
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x10078684]
mov edx, dword [0x10078688]
mov esi, edx
not esi
or esi, edx
and esi, ecx
sub esi, ecx
add esi, 0xc2ce2d2f
cmp eax, esi
mov eax, 0x3a52f2b4
mov ecx, 0x8846f183
cmove eax, ecx
mov esi, dword [0x1007beb8]
mov ecx, dword [0x1007868c]
mov edx, dword [0x10078690]
mov edi, edx
not edi
and edi, ecx
add edi, edx
or ecx, edx
sub ecx, edi
add ecx, 0xa
cmp dword [0x1007beb4], ecx
setl byte [ebp - 0x14]
lea edx, [esi + 1]
imul edx, esi
mov esi, dword [0x10078694]
mov edi, esi
not edi
mov ebx, dword [0x10078698]
lea ecx, [esi + edi*2]
or edi, ebx
sub edi, ecx
and esi, ebx
not esi
add esi, edi
mov edi, dword [ebp - 0x10]
and edx, 1
cmp edx, esi
mov dword [edi], eax
sete al
or al, byte [ebp - 0x14]
jne 0x1005c490
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0xc2ce2d2f
mov eax, 0x3a52f2b4
mov ecx, 0x8846f183
cmove eax, ecx
mov dword [edi], eax
jmp 0x1005b04f
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, dword [0x100786ac]
mov edx, dword [0x100786b0]
mov esi, ecx
and esi, edx
mov edi, ecx
or edi, edx
add esi, edi
not edi
lea esi, [esi + edi*2]
mov edi, edx
not edi
or edi, ecx
sub edi, esi
not ecx
or ecx, edx
add ecx, edi
add ecx, 0xb8b3342b
cmp eax, ecx
mov eax, 0x3a52f2b4
mov ecx, 0x9e3a7138
cmove eax, ecx
mov esi, dword [0x1007bdc0]
cmp dword [0x1007bdbc], 0xa
setl byte [ebp - 0x14]
lea edx, [esi + 1]
imul edx, esi
mov esi, dword [0x100786c0]
mov edi, esi
not edi
mov ecx, dword [0x100786bc]
mov ebx, ecx
and ebx, edi
xor esi, ecx
not esi
add esi, ebx
or edi, ecx
sub esi, edi
mov edi, dword [ebp - 0x10]
and edx, 1
cmp edx, esi
mov dword [edi], eax
sete al
or al, byte [ebp - 0x14]
jne 0x1005c490
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
cmp eax, 0xb8b3342b
mov eax, 0x3a52f2b4
mov ecx, 0x9e3a7138
cmove eax, ecx
mov dword [edi], eax
jmp 0x1005b101
mov dword [edi], 0x7209474c
mov eax, dword [0x10078708]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0xb
cmp dword [0x1007bcd4], eax
mov edx, dword [0x1007bcd8]
setl al
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
mov edx, dword [0x1007870c]
mov esi, edx
not esi
add esi, esi
lea edx, [esi + edx*2]
xor edx, 0xfffffffe
cmp ecx, edx
setne cl
sete dl
or dl, al
or cl, al
add al, dl
not dl
add dl, al
add cl, dl
test cl, 1
jne 0x1005c490
mov eax, dword [0x1007881c]
mov edx, dword [0x10078820]
mov esi, edx
sub esi, eax
mov ecx, edx
not ecx
or ecx, eax
add ecx, esi
not eax
or eax, edx
sub ecx, eax
add ecx, 0x7209474c
mov dword [edi], ecx
jmp 0x1005b1ad
mov eax, dword [ebp - 0x48]
cmp byte [eax], 0
mov eax, 0x20d401c7
mov ecx, 0xc2ce2d2f
cmovne eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [0x10078558]
mov ecx, eax
and ecx, 0xc5adb18b
add ecx, eax
mov edx, eax
mov esi, eax
not esi
and esi, 0xdb99e0ae
lea edi, [eax + esi]
add edi, 0x24661f52
mov ebx, eax
xor ebx, 0xc5adb18b
add ebx, ecx
or edx, 0xc5adb18b
sub ebx, edx
add ebx, 0xc5adb18b
mov ecx, ebx
not ecx
and ecx, 0xc5adb18b
mov eax, ebx
sub eax, ecx
or ebx, 0x3a524e74
sub eax, ebx
mov edx, esi
or edx, edi
mov ecx, edi
not ecx
sub edx, ecx
or ecx, esi
add ecx, edx
add eax, 0x3a524e74
not esi
add ecx, esi
or esi, edi
mov edi, dword [ebp - 0x10]
sub ecx, esi
xor ecx, 0xdb99e0ae
lea edx, [ecx + 1]
lea esi, [ecx + ecx]
add esi, 2
mov ecx, eax
sub ecx, esi
mov esi, eax
xor esi, edx
sub ecx, esi
or edx, eax
not edx
add edx, edx
sub ecx, edx
not eax
add eax, ecx
add eax, 0xe5e085e2
mov ecx, eax
and ecx, 1
lea ecx, [ecx + ecx*2]
add ecx, eax
not eax
and eax, 1
lea eax, [eax + eax*2]
add eax, ecx
add eax, 0x1a1f7a1b
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x24]
mov dword [edx], eax
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x38]
mov dword [ecx], eax
mov eax, dword [0x10078724]
xor eax, dword [0x10078728]
mov ecx, eax
not ecx
add eax, ecx
add eax, 0x7209474d
mov dword [edi], eax
mov ecx, dword [0x1007872c]
mov eax, dword [0x10078730]
mov edx, eax
not edx
mov esi, ecx
and esi, edx
xor eax, ecx
not eax
add eax, esi
or edx, ecx
sub eax, edx
mov ecx, dword [0x1007bcd0]
add eax, 0xa
cmp dword [0x1007bccc], eax
setl al
lea edx, [ecx + 1]
imul edx, ecx
test dl, 1
sete cl
or cl, al
jne 0x1005c490
mov eax, dword [ebp - 0x48]
cmp byte [eax], 0
mov eax, 0x20d401c7
mov ecx, 0xc2ce2d2f
cmovne eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov edx, dword [0x10078558]
mov eax, edx
not eax
mov ecx, eax
and ecx, 0x3a524e74
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + edx*2]
mov esi, edx
xor esi, 0x3a524e74
add esi, esi
sub ecx, esi
mov esi, edx
and esi, 0xc5adb18b
add ecx, esi
add ecx, 0xc5adb18c
and eax, 0xdb99e0ae
mov esi, edx
and esi, 0x24661f51
mov edi, edx
xor edi, 0x24661f51
lea esi, [edi + esi*2]
or edx, 0x24661f51
sub esi, edx
mov edx, eax
and edx, esi
mov edi, eax
or edi, esi
add edi, edi
sub edi, edx
mov edx, esi
not edx
or edx, eax
add edx, edi
not eax
or eax, esi
add eax, edx
add eax, 2
xor eax, 0x24661f51
lea edx, [ecx + ecx*2]
add edx, eax
not ecx
lea eax, [edx + ecx*2]
add eax, 2
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xe5e085e3
mov esi, eax
sub esi, edx
xor eax, 0xe5e085e3
add eax, esi
or ecx, 0xe5e085e3
lea edx, [eax + ecx]
add eax, ecx
add eax, 0xe5e085e5
mov ecx, eax
not ecx
or ecx, eax
and ecx, 0x1a1f7a1c
lea eax, [ecx + edx]
add eax, 0xe5e085e5
imul eax, eax, 0x47a8931
mov ecx, 0xfb8576cf
sub ecx, eax
mov eax, ecx
and eax, 0xdf6c15a6
mov edx, ecx
xor edx, 0x2093ea59
sub eax, edx
or ecx, 0x2093ea59
add ecx, eax
imul eax, ecx, 0xac59d02f
lea ecx, [eax + 0x6e815656]
add eax, eax
add eax, 0xdd02acac
mov edx, ecx
or edx, 0x6e815657
sub edx, eax
or ecx, 0x917ea9a8
add ecx, edx
mov eax, 0x917ea9a9
sub eax, ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x24]
mov dword [edx], eax
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx], eax
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x38]
mov dword [ecx], eax
mov eax, dword [0x10078824]
mov ecx, dword [str.j_T]
mov edx, eax
xor edx, ecx
mov esi, eax
or esi, ecx
not esi
add esi, edx
and eax, ecx
add eax, esi
add eax, 0x7209474d
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
jmp 0x1005b232
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
mov ecx, edx
not ecx
mov eax, ecx
or eax, 1
mov esi, eax
not esi
lea edi, [eax + esi*2]
lea eax, [eax + esi*2]
add eax, 1
not eax
mov esi, eax
and esi, 0xb0fdd123
add esi, edi
add esi, 1
or eax, 0x4f022edc
sub esi, eax
add esi, edx
add esi, 0x4f022edc
mov eax, esi
or eax, 0x767049d3
not esi
or esi, 0x898fb62c
sub eax, esi
mov esi, eax
not esi
and esi, 0xfffffffe
lea esi, [esi + esi*2]
lea esi, [esi + eax*2]
mov edi, eax
xor edi, 0x7ffffffe
add edi, edi
sub esi, edi
and eax, 1
or eax, esi
and ecx, 0xbbc9a2bc
mov esi, edx
and esi, 0x44365d43
mov edi, edx
xor edi, 0x44365d43
lea esi, [edi + esi*2]
or edx, 0x44365d43
sub esi, edx
mov edx, ecx
and edx, esi
mov edi, ecx
or edi, esi
add edi, edi
sub edi, edx
mov edx, esi
not edx
or edx, ecx
add edx, edi
not ecx
or ecx, esi
add ecx, edx
add ecx, 2
mov edx, ecx
xor edx, 0x44365d43
xor ecx, 0xbbc9a2bc
mov esi, ecx
and esi, 0xfffffffe
lea ecx, [esi + ecx*2]
lea ecx, [ecx + edx*2]
sub eax, ecx
add eax, 0x898fb62c
not eax
lea ecx, [eax + eax]
sub eax, ecx
imul ecx, eax, 0x1549a4eb
not ecx
mov edx, ecx
or edx, 0xd4a0eb
sub edx, ecx
sub edx, ecx
or ecx, 0xff2b5f14
lea eax, [edx + ecx]
add edx, ecx
add edx, 0x415e3f99
mov esi, edx
or esi, 0xd4a0eb
mov edi, edx
sub edi, esi
sub edi, esi
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx]
add edi, esi
or edx, 0xff2b5f14
sub edi, edx
add eax, edi
add eax, 0x415e3f99
imul edx, eax, 0xd441e3c3
add edx, 0x876c283c
mov esi, edx
and esi, 0xb7d3c8f2
mov eax, edx
xor eax, 0xb7d3c8f2
add eax, esi
not edx
or edx, 0x482c370d
sub eax, edx
add eax, 0x6d49d776
mov edx, eax
and edx, 0xb7d3c8f2
mov esi, eax
or esi, 0x482c370d
sub edx, esi
not esi
add esi, esi
sub edx, esi
mov esi, eax
or esi, 0xb7d3c8f2
add esi, edx
not eax
or eax, 0x482c370d
lea edx, [eax + esi]
add edx, 0x482c370d
mov esi, edx
xor esi, 0xffffff00
mov edi, esi
and edi, edx
add edi, esi
mov eax, esi
or eax, edx
not eax
add eax, edi
not edx
or edx, esi
sub eax, edx
add eax, 0xb6b618e4
mov edx, eax
not edx
mov esi, edx
and esi, 0xb6b618e4
mov edi, eax
sub edi, esi
xor eax, 0xb6b618e4
add eax, edi
and edx, 0x4949e71b
add edx, eax
imul eax, edx, 0xb39cd07d
mov edx, 0x4c632f83
sub edx, eax
imul edx, edx, 0x6cd0d72b
mov dword [ebp - 0x40], edx
mov eax, dword [ebp + 8]
movzx eax, byte [edx + eax + 8]
mov dword [ebp - 0x1c], eax
lea edx, [ecx - 0x1232621]
mov esi, edx
not esi
and esi, 0x1232620
lea ecx, [esi + ecx*2]
add ecx, 0xfdb9b3be
or edx, 0x1232620
sub ecx, edx
lea esi, [ecx + 0x1232621]
lea edx, [eax + eax]
neg edx
mov edi, esi
and edi, edx
add ecx, edi
add ecx, 0x1232621
lea edi, [ecx + eax*2]
mov ecx, esi
xor ecx, edx
add ecx, edi
or edx, esi
sub ecx, edx
mov edx, eax
not edx
lea esi, [eax + edx*2]
mov edx, ecx
or edx, esi
not esi
add edx, ecx
not ecx
add edx, ecx
or ecx, esi
sub edx, ecx
lea ecx, [edx + 1]
not ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + edx*2]
add ecx, 2
neg ecx
imul ecx, ecx, 0xd0a5b1fb
mov edx, 0xa14b63f6
sub edx, ecx
and edx, 0xd9ccf10c
lea edx, [edx + edx*2]
sub edx, ecx
add ecx, 0x5eb49c09
and ecx, 0xd9ccf10c
lea ecx, [ecx + ecx*2]
add ecx, edx
imul eax, ecx, 0x57624ecd
lea ecx, [eax + 0x608bf42a]
mov edi, ecx
not edi
or edi, 0xffffff00
mov edx, edi
not edx
add edi, edx
add edi, edx
lea esi, [edi + edi]
add esi, 2
mov edx, esi
not edx
mov ebx, edx
and ebx, 0xb1b72cbd
lea edi, [ebx + edi*2]
add edi, 2
xor esi, 0x4e48d342
add esi, edi
or edx, 0xb1b72cbd
sub esi, edx
mov ebx, 0x9f740bd6
sub ebx, eax
lea eax, [ebx + ebx]
sub ebx, eax
mov edx, esi
and edx, ebx
mov edi, edx
sub edi, ebx
sub edi, ebx
mov eax, esi
or eax, ebx
not eax
add eax, eax
sub edi, eax
xor ebx, esi
not ebx
add ebx, edi
not edx
lea eax, [ebx + edx]
add edx, ebx
add edx, 0xffffff01
mov esi, ecx
xor esi, 0xff
mov edi, ecx
xor edi, 0x7fffff00
or ecx, 0xff
add ecx, esi
lea ecx, [ecx + edi*2]
add ecx, 2
or ecx, esi
mov esi, edx
or esi, 0x44746552
add eax, esi
add eax, 0xffffff01
not edx
or edx, 0x44746552
lea esi, [eax + edx]
add edx, eax
add edx, 0x7717355d
lea eax, [esi + ecx*2]
add eax, 0x7717355d
mov esi, edx
or esi, ecx
not esi
add esi, eax
not edx
or edx, ecx
sub esi, edx
imul eax, esi, 0x92c7db39
mov edx, 0xa8aa4abe
sub edx, eax
mov ecx, edx
or ecx, 0x93edf06a
not edx
or edx, 0x6c120f95
sub ecx, edx
add ecx, 0xd8241f2a
not ecx
lea eax, [ecx + ecx*2]
add ecx, ecx
sub eax, ecx
imul eax, eax, 0xf584a309
mov edi, dword [ebp + 8]
mov bl, byte [edi + eax - 0x1c18f1b2]
mov esi, eax
mov dword [ebp - 0x44], eax
mov cl, 0xb4
sub cl, bl
movzx eax, cl
lea eax, [eax + eax*2]
not cl
add cl, cl
add cl, al
add cl, 0x4e
mov edx, ecx
not dl
mov eax, edx
and al, 0xd1
mov ah, cl
sub ah, al
xor cl, 0xd1
add cl, ah
or dl, 0xd1
add dl, cl
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x40]
mov byte [eax + edi + 8], bl
mov eax, dword [ebp - 0x1c]
mov byte [edi + esi - 0x1c18f1b2], al
add dl, al
add dl, 0x30
mov eax, edx
not al
or al, dl
and al, 0x2e
add al, dl
add al, 0xa2
mov edx, ebx
and dl, 0x17
add dl, dl
mov ecx, ebx
and cl, 0x68
add cl, dl
mov edx, ebx
sub cl, bl
not bl
xor dl, 0x97
or bl, 0x68
sub bl, dl
mov edx, ecx
not dl
and dl, bl
add dl, cl
or cl, bl
add cl, cl
sub cl, dl
xor cl, 0x17
add cl, cl
mov edx, ecx
neg dl
add dl, dl
sub dl, cl
add cl, 0xff
add dl, cl
add dl, cl
xor dl, 0xfe
mov ecx, edx
sub cl, al
not al
mov ah, al
xor ah, dl
add ah, cl
mov ecx, eax
or cl, dl
not cl
add cl, ah
and al, dl
add al, cl
mov ecx, eax
add cl, 0xff
neg al
mov edx, eax
and dl, 0xfd
mov ah, al
or ah, 2
sub dl, ah
not ah
add ah, ah
sub dl, ah
or al, 0xfd
add al, dl
or cl, 2
add cl, al
movzx ecx, cl
lea eax, [ecx + ecx*8]
lea eax, [eax + eax*2]
add eax, ecx
add eax, ecx
add al, 0x7e
mov ecx, eax
and cl, 0x65
add cl, al
mov edx, eax
xor dl, 0x65
add dl, cl
or al, 0x65
sub dl, al
movzx eax, dl
imul ecx, eax, 0x35
add cl, 0xca
mov eax, ecx
and al, 0xe2
add al, cl
not cl
mov edx, ecx
and dl, 0xe2
add dl, al
mov eax, ecx
and al, 0x1d
add al, dl
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 0x14]
mov ah, byte [edx + esi]
or cl, 0xe2
sub al, cl
add al, 0x1e
movzx ecx, al
mov dl, byte [edi + ecx + 8]
mov byte [ebp - 0x1d], dl
mov bl, ah
not bl
mov al, ah
sub al, bl
mov ecx, ebx
add cl, bl
add cl, al
not dl
mov al, dl
and al, ah
mov byte [ebp - 0x1e], al
mov al, bl
or al, ah
mov ch, dl
or ch, bl
mov byte [ebp - 0x1c], ch
mov ch, dl
and ch, bl
mov byte [ebp - 0x34], ch
mov ch, dl
xor ch, bl
sub cl, ah
and ah, 0x23
shl ah, 2
and bl, 0x63
movzx edi, bl
lea ebx, [edi + edi*2]
add bl, ah
and cl, 0x9c
add bl, 0xd7
or bl, cl
mov dh, bl
xor dh, 0x63
xor bl, 0x9c
mov ah, dl
and ah, bl
add ah, dl
or bl, dl
or dh, dl
mov cl, dl
and cl, 0x99
mov dl, byte [ebp - 0x1d]
add cl, dl
and al, dl
and dl, 0x99
add dl, cl
add al, byte [ebp - 0x1c]
add al, 1
or al, byte [ebp - 0x1e]
mov cl, al
add cl, al
sub al, cl
add dl, 0x67
add al, dl
not dl
add dl, dl
add dl, al
mov al, byte [ebp - 0x34]
add al, al
add ch, al
sub ch, byte [ebp - 0x1c]
mov al, ch
not al
add al, al
add al, ch
add al, 1
mov ecx, eax
not cl
and cl, 0x1d
and al, 0xe2
mov ch, cl
or ch, al
add cl, ch
not ch
add ch, cl
add ch, al
add ch, 1
mov al, ch
xor al, 0xe2
mov cl, ch
or cl, 0x1d
add cl, al
not ch
add cl, ch
or ch, 0xe2
sub cl, ch
sub cl, dl
not bl
add bl, ah
add cl, 0xe1
sub bl, dh
not bl
mov eax, ecx
sub al, bl
xor bl, cl
add al, bl
not bl
add bl, al
add bl, 0xc0
mov eax, ebx
not al
mov ecx, ebx
and cl, 0xbf
mov edx, eax
and dl, 0x40
add dl, dl
sub cl, dl
xor bl, 0x40
add bl, cl
or al, 0x40
add al, bl
mov byte [ebp - 0x1c], al
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
xor ecx, 0xfffffffe
and ecx, ebx
lea edx, [ecx - 1]
or edx, 0x6d2557f
mov edi, ecx
add ecx, ecx
sub edx, ecx
neg edi
or edi, 0xf92daa80
sub edx, edi
mov ecx, edx
not ecx
and ecx, 0xf92daa80
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + edx*2]
mov edi, edx
xor edi, 0x792daa80
add edi, edi
sub ecx, edi
and edx, 0x6d2557f
add edx, ecx
not ebx
mov esi, ebx
or esi, 1
mov edi, esi
not edi
lea edi, [esi + edi*2]
lea edi, [edx + edi*2]
add edi, 3
mov edx, edi
not edx
mov eax, edx
and eax, 0x11cbd031
mov ecx, edi
sub ecx, eax
xor edi, 0x11cbd031
add edi, ecx
or edx, 0x11cbd031
add edx, edi
mov edi, dword [ebp - 0x14]
lea eax, [edi + edx]
add eax, 0xee342fd0
mov ecx, eax
not ecx
or ecx, eax
add edx, edi
and ecx, 0xee342fce
add edx, ecx
add edx, 0xee342fd0
mov cl, byte [ebp - 0x1c]
add cl, 0x82
mov eax, dword [ebp + 0x14]
mov byte [eax + edi], cl
lea eax, [edi + edi]
sub edi, eax
lea eax, [edi + edi]
sub edi, eax
mov eax, edi
not eax
mov ecx, edi
and ecx, 0xfffffffe
xor edi, 0xfffffffe
add edi, ecx
and eax, 1
add eax, edi
add eax, ecx
add eax, 1
not eax
lea eax, [edx + eax*2]
mov edx, ebx
or edx, 0xfffffffe
add ebx, edx
not edx
add edx, ebx
sub edx, esi
mov ecx, edx
not ecx
add edx, ecx
add edx, ecx
add edx, eax
imul eax, edx, 0xf42c1d75
lea ecx, [eax + 0x2f2bfa13]
add eax, eax
add eax, 0x5e57f426
sub ecx, eax
mov eax, ecx
not eax
lea eax, [ecx + eax*2]
neg eax
imul eax, eax, 0xa2cbf523
lea ecx, [eax + 0x46446d29]
not ecx
mov edx, ecx
and edx, 0x98ee8827
add eax, edx
add eax, 0x46446d29
mov edx, ecx
and edx, 0x671177d8
add edx, eax
sub edx, ecx
lea ecx, [edx + 0x671177d9]
mov eax, ecx
and eax, 0x7423a891
add edx, eax
add edx, 0x671177d9
mov eax, ecx
xor eax, 0x7423a891
add eax, edx
or ecx, 0x7423a891
sub eax, ecx
add eax, 0xd1230b8
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp + 0xc]
mov ecx, 0x20d401c7
mov eax, 0xc2ce2d2f
cmove ecx, eax
mov dword [ebp - 0x1c], ecx
mov ebx, dword [0x1007874c]
mov ecx, dword [0x10078750]
mov edx, ebx
or ebx, ecx
not ecx
and edx, ecx
not ebx
add ebx, edx
sub ebx, ecx
mov edx, dword [0x10078758]
mov edi, edx
not edi
mov eax, dword [0x10078754]
mov ecx, eax
or ecx, edi
sub ecx, edi
not eax
add ecx, eax
or eax, edx
sub ecx, eax
add ebx, 0x7209474c
add ecx, 0xa
cmp dword [0x1007bcc4], ecx
setl byte [ebp - 0x34]
mov eax, dword [0x1007bcc8]
lea edx, [eax - 1]
imul edx, eax
mov edi, dword [0x10078760]
mov ecx, edi
not ecx
mov esi, dword [0x1007875c]
mov eax, esi
and eax, ecx
xor edi, esi
not edi
add edi, eax
or ecx, esi
sub edi, ecx
and edx, 1
cmp edx, edi
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov dword [eax], ecx
mov eax, dword [ebp - 0x44]
lea eax, [eax - 0x1c18f1ba]
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x3c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x40]
mov dword [eax], ecx
mov eax, dword [ebp - 0x38]
mov dword [eax], ecx
mov dword [edi], ebx
sete al
or al, byte [ebp - 0x34]
jne 0x1005c490
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov edx, ecx
not edx
mov eax, edx
or eax, 1
mov esi, eax
not esi
mov edi, esi
and edi, 0x4f022edc
add edi, esi
mov esi, eax
and esi, 0x4f022edc
add esi, edi
and eax, 0xb0fdd123
add eax, esi
mov esi, edx
or esi, 0x4f022edd
sub eax, esi
add eax, ecx
add eax, 0x4f022edc
mov esi, eax
not esi
mov edi, esi
and edi, 0x4f022edc
mov ebx, eax
sub ebx, edi
xor eax, 0x4f022edc
add eax, ebx
and esi, 0xb0fdd123
lea edi, [eax + esi]
add esi, eax
add esi, 0x767049d5
mov eax, esi
and eax, 0xfffffffe
add eax, edi
add eax, 0x767049d5
mov edi, esi
not edi
add edi, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
and esi, 1
add esi, edi
and edx, 0xbbc9a2bc
and ecx, 0x44365d43
or ecx, edx
mov edi, ecx
xor edi, 0x44365d43
xor ecx, 0xbbc9a2bc
mov edx, ecx
and edx, 0xfffffffe
add ecx, ecx
sub edx, ecx
add edi, edi
sub edx, edi
add edx, 0xfffffffe
not edx
add edx, esi
imul ecx, edx, 0x1549a4eb
lea edx, [ecx + 0x26095925]
mov esi, edx
not esi
and edx, 0xff2b5f14
add ecx, edx
add ecx, 0x26095925
and esi, 0xff2b5f14
lea edx, [ecx + esi]
add ecx, esi
add ecx, 0x1a941d7
mov esi, ecx
or esi, 0xbf766151
add edx, esi
add edx, 0x1a941d7
not ecx
add edx, ecx
or ecx, 0x40899eae
sub edx, ecx
imul ecx, edx, 0xd441e3c3
add ecx, 0xd3009c9
mov edx, ecx
xor edx, 0x6d49d776
mov esi, ecx
sub esi, edx
not ecx
mov edx, ecx
and edx, 0x12b62889
add edx, edx
sub esi, edx
lea edx, [esi + ecx]
add ecx, esi
add ecx, 0xffffffff
mov esi, ecx
and esi, 0x482c370d
add esi, edx
add esi, 0xffffffff
mov edi, edx
neg edi
and edi, 0x482c370d
sub esi, edi
xor ecx, 0x482c370d
add ecx, esi
sub ecx, edx
add ecx, 0x482c370e
mov edx, ecx
xor edx, 0xffffff00
and edx, ecx
lea ecx, [edx - 0x4949e71c]
mov esi, ecx
not esi
and esi, 0x4949e71b
lea edx, [esi + edx*2]
add edx, 0x6d6c31c8
or ecx, 0x4949e71b
sub edx, ecx
mov ecx, 0x52dc082b
sub ecx, edx
mov esi, ecx
and esi, 0x9c25ef46
sub esi, edx
mov edx, ecx
xor edx, 0x9c25ef46
add edx, esi
or ecx, 0x9c25ef46
sub edx, ecx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 8]
lea esi, [ecx + 8]
sub esi, edx
mov dword [ebp - 0x44], esi
movzx edx, byte [esi + 0x4949e71c]
lea esi, [edx + edx]
neg esi
lea edi, [edx + edx]
add edi, 0xffffffff
mov dword [ebp - 0x34], edx
and edi, eax
mov ebx, eax
xor ebx, esi
or esi, eax
lea eax, [edi + edx*2]
add eax, ebx
add esi, eax
not ebx
lea edi, [esi + ebx*2]
lea eax, [esi + ebx*2]
add eax, 2
not edx
mov ebx, edx
neg ebx
mov esi, eax
not esi
and esi, ebx
lea esi, [esi + edi*2]
add esi, 4
add esi, edx
or ebx, eax
sub esi, ebx
not esi
lea eax, [esi + esi*2]
add esi, esi
sub eax, esi
imul edx, eax, 0x2f5a4e05
mov eax, edx
neg eax
mov esi, eax
and esi, 0xd9ccf10c
sub esi, edx
mov edx, eax
xor edx, 0xd9ccf10c
add edx, esi
or eax, 0xd9ccf10c
sub edx, eax
add edx, 0xd9ccf10c
not edx
imul ecx, edx, 0xa89db133
add ecx, 0x73770297
mov ebx, ecx
not ebx
mov edx, ebx
and edx, 0xffffff00
mov esi, ebx
or esi, 0xffffff00
mov eax, esi
sub eax, edx
not esi
add esi, eax
lea eax, [ebx + esi]
add eax, 0xffffff01
not eax
lea edx, [eax + eax]
mov esi, edx
not esi
or esi, edx
and esi, 0xb1b72cbd
lea esi, [esi + eax*2]
mov eax, esi
and eax, 0x4e48d343
or esi, 0x4e48d343
add esi, eax
sub esi, ecx
mov eax, esi
not eax
mov edx, esi
xor edx, 0x94623f65
add edx, esi
and eax, 0x6b9dc09a
add eax, edx
and esi, 0x94623f65
add eax, esi
add eax, 0x6b9dc09c
mov edx, eax
and edx, 0xfe
mov ebx, eax
xor ebx, 0xfe
add ebx, edx
not eax
or eax, 0xffffff01
sub ebx, eax
mov esi, ecx
xor esi, 0xff
movzx edi, cl
xor ecx, 0xffffff00
mov eax, edi
and eax, ecx
mov edx, edi
or edx, esi
add edx, eax
xor esi, edi
not esi
add esi, edx
or ecx, edi
sub esi, ecx
lea eax, [ebx - 0x6b9dc299]
mov ecx, eax
not ecx
and ecx, 0xbb8b9aad
lea ecx, [ecx + ebx*2]
add ecx, 0x28c47ace
or eax, 0xbb8b9aad
sub ecx, eax
lea eax, [ecx - 0x44746552]
mov edx, eax
and edx, esi
add ecx, edx
add ecx, 0xbb8b9aae
mov edi, eax
not edi
mov edx, edi
and edx, esi
add edx, ecx
add edx, esi
or eax, esi
not eax
add eax, edx
or edi, esi
sub eax, edi
imul eax, eax, 0x92c7db39
add eax, 0x5755b542
not eax
imul edx, eax, 0xa7b5cf7
add edx, 0x1c18f1ba
mov ecx, edx
not ecx
mov eax, ecx
mov esi, ecx
mov dword [ebp - 0x40], ecx
and eax, 0x6e626b3c
add eax, eax
mov ecx, edx
sub ecx, eax
xor edx, 0xee626b3c
add edx, ecx
mov dword [ebp - 0x1c], edx
lea ecx, [edx + esi]
mov edi, dword [ebp + 8]
mov al, byte [edi + ecx - 0x233b297e]
mov edx, dword [ebp - 0x28]
mov esi, dword [edx]
mov edx, dword [ebp - 0x44]
mov byte [edx + 0x4949e71c], al
mov ebx, dword [ebp - 0x34]
mov byte [edi + ecx - 0x233b297e], bl
mov ecx, eax
neg cl
mov edx, ecx
and dl, 0xb4
or cl, 0xb4
add cl, dl
mov ch, cl
not ch
add ch, ch
add ch, cl
mov cl, 0x4a
sub cl, ch
mov ah, cl
and ah, 0xd1
add ch, ah
mov edx, ecx
and dl, 0x2e
add dl, dl
sub dl, ch
not cl
add cl, cl
or cl, 0xa2
add cl, dl
add cl, ah
add cl, 0x7b
mov edx, ecx
not dl
mov ah, dl
and ah, bl
add ah, cl
add ah, bl
or cl, bl
not cl
add cl, ah
sub cl, dl
mov edx, ecx
and dl, 0xd1
add dl, cl
mov ah, cl
xor ah, 0xd1
add ah, dl
or cl, 0xd1
sub cl, ah
mov ah, al
not ah
add ah, ah
add ah, al
mov edx, eax
xor dl, 0x68
add dl, al
or al, 0x68
sub dl, al
add ah, 1
and ah, 0x68
or dl, ah
xor dl, 0x17
add dl, dl
add cl, 0x2f
mov eax, ecx
and al, dl
mov ah, cl
add ah, cl
sub ah, al
add ah, dl
mov al, cl
xor al, dl
not al
add al, ah
not dl
or dl, cl
sub al, dl
mov ecx, eax
neg cl
mov edx, ecx
and dl, 2
sub dl, al
add al, 0xff
mov ah, al
and ah, 2
sub dl, ah
xor cl, 2
add cl, dl
add cl, al
movzx ecx, cl
lea eax, [ecx + ecx*8]
lea eax, [eax + eax*2]
add eax, ecx
add eax, ecx
add al, 0xe3
mov ecx, eax
and cl, 0xb8
movzx ecx, cl
lea ecx, [ecx + ecx*2]
add cl, al
not al
and al, 0xb8
movzx eax, al
lea eax, [eax + eax*2]
add al, cl
add al, 0x2a
mov ecx, eax
and cl, 0xb8
add al, cl
not cl
add cl, al
movzx eax, cl
imul eax, eax, 0x35
add al, 0x3b
movzx eax, al
mov al, byte [edi + eax + 8]
mov ch, al
not ch
mov edx, dword [ebp + 0x10]
mov ah, byte [edx + esi]
mov cl, ah
not cl
mov dh, ah
or dh, cl
and dh, ch
mov dl, ch
xor dl, ah
not dl
add dl, dh
mov dh, ch
or dh, cl
sub dl, dh
xor ch, cl
add dh, ch
not ch
add ch, ch
add ch, dh
add ch, 2
mov dh, ch
not dh
and ch, 0x1d
mov bl, dh
and bl, 0xe2
or ch, bl
or dh, 0x1d
sub ch, dh
add ch, 0x1d
or ch, bl
mov bl, ch
not bl
and bl, 0xe2
add bl, ch
mov dh, ch
xor dh, 0xe2
add dh, bl
or ch, 0xe2
sub dh, ch
not dh
movzx edi, dh
lea ebx, [edi + edi*2]
add dh, dh
sub dh, bl
mov ch, al
and ch, cl
mov ebx, edx
not bl
or bl, dl
and bl, ch
sub bl, ch
or ch, dl
add ch, bl
add ch, al
add dh, ch
mov ch, ah
and ch, 0x63
add ch, ch
mov dl, ah
xor dl, 0x63
add dl, ch
or ah, 0x63
sub dl, ah
and cl, 0x9c
mov ah, cl
and ah, dl
mov ch, cl
or ch, dl
add ch, ch
sub ch, ah
mov ah, dl
not ah
or ah, cl
add ah, ch
not cl
or cl, dl
add cl, ah
add cl, 2
mov dl, cl
xor dl, 0x63
add dl, dl
xor cl, 0x9c
add dl, cl
add cl, cl
add cl, dl
add cl, 2
or cl, al
sub cl, al
add cl, dh
movzx eax, cl
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
neg al
mov ecx, eax
and cl, 0x59
or al, 0x59
add al, cl
not al
movzx eax, al
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*8]
add al, 0x6a
mov ecx, dword [ebp + 0x14]
mov byte [ecx + esi], al
mov eax, 0x4949e71c
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov ebx, esi
xor ebx, 0xfffffffe
mov edx, ebx
and edx, esi
mov ecx, esi
xor ecx, 1
mov edi, ecx
and edi, esi
sub edx, edi
add edx, esi
mov edi, ebx
xor edi, esi
add edi, edx
or ebx, esi
not ebx
add ebx, edi
mov edx, 0x6d2557e
sub edx, ebx
mov edi, edx
and edi, 0xf92daa80
add edi, edx
not edx
add edi, edx
or edx, 0xf92daa80
sub edx, edi
mov edi, esi
and edi, 0x7ffffffe
add edi, edi
add edx, 0x6d2557f
neg edi
mov ebx, edx
and ebx, edi
or edi, edx
add edi, ebx
mov ebx, edi
neg ebx
mov edx, ebx
and edx, 0x11cbd031
and ebx, 0x6e342fce
add ebx, ebx
sub ebx, edx
sub ebx, edi
add edi, edi
add edi, 0xfffffffe
or edi, 0x2397a062
add edi, ebx
lea ebx, [edi + edx]
add edx, edi
add edx, 0xee342fd1
mov eax, edx
not eax
mov edi, eax
and edi, esi
add edi, ebx
add edi, 0xee342fd1
add edi, esi
or edx, esi
not edx
add edx, edi
sub edx, eax
mov eax, edx
and eax, 0x11cbd031
add eax, edx
mov edi, edx
xor edi, 0x11cbd031
add edi, eax
or edx, 0x11cbd031
sub edi, edx
lea eax, [edi + 0x11cbd031]
lea edx, [edi + edi]
add edx, 0x2397a062
not eax
lea ebx, [eax + edx]
add ebx, 2
add ecx, esi
mov edx, esi
or esi, 1
sub ecx, esi
not ecx
add ecx, ecx
neg ecx
mov eax, ebx
and eax, ecx
lea eax, [eax + eax*2]
add eax, ebx
not ebx
and ebx, ecx
lea ebx, [ebx + ebx*2]
add ebx, eax
shl ecx, 2
sub ebx, ecx
not edx
add edx, 0xcfb67620
or edx, 0xfffffffe
mov ecx, edx
not ecx
add ecx, edx
add ecx, edx
mov eax, ebx
and eax, 0x463156b7
lea edx, [ebx + ebx]
sub edx, eax
mov esi, ebx
xor esi, 0xb9cea948
add esi, edx
or ebx, 0xb9cea948
sub esi, ebx
lea edx, [esi - 0x463156b7]
mov eax, edx
and eax, ecx
add eax, esi
add eax, 0xb9cea949
mov esi, ecx
xor esi, edx
or edx, ecx
not ecx
add ecx, eax
add ecx, esi
sub ecx, edx
lea eax, [ecx + 0x463156b7]
add ecx, ecx
add ecx, 0x8c62ad6e
not eax
add ecx, eax
add ecx, 0xf2edcf4a
mov eax, ecx
and eax, 0x8bdc576e
mov edx, ecx
xor edx, 0x7423a891
add edx, eax
mov eax, ecx
or eax, 0x7423a891
add eax, edx
xor ecx, 0xbdc576e
lea eax, [eax + ecx*2]
add eax, 0xd1230ba
cmp eax, dword [ebp + 0xc]
mov ecx, 0x20d401c7
mov edx, 0xc2ce2d2f
cmove ecx, edx
mov edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x1c]
lea edx, [edx + esi - 0x233b2986]
mov esi, dword [ebp - 0x30]
mov dword [esi], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x24]
mov dword [eax], edx
mov eax, dword [ebp - 0x3c]
mov dword [eax], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
mov dword [eax], ecx
mov eax, dword [ebp - 0x38]
mov dword [eax], ecx
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x7209474c
jmp 0x1005b4fb
mov edx, dword [0x1007be90]
cmp dword [0x1007be8c], 0xa
setl al
mov ecx, edx
not ecx
add ecx, edx
add ecx, edx
add ecx, 2
imul ecx, edx
mov esi, dword [0x100787a4]
mov edx, dword [0x100787a8]
mov edi, edx
not edi
mov ebx, esi
and ebx, edi
xor edx, esi
not edx
add edx, ebx
or edi, esi
sub edx, edi
mov edi, dword [ebp - 0x10]
and ecx, 1
cmp ecx, edx
sete cl
setne dl
mov ah, al
and ah, dl
mov ch, al
or ch, cl
add ch, ah
xor cl, al
not cl
add cl, ch
or al, dl
add al, cl
mov dword [edi], 0xfc333d39
add al, 1
test al, 1
jne 0x1005c4ce
nop word [eax + eax]
mov eax, dword [0x1007bcb8]
mov ecx, dword [0x100787bc]
mov edx, dword [0x100787c0]
mov esi, ecx
and esi, edx
not ecx
add esi, ecx
or ecx, edx
sub esi, ecx
add esi, 0xa
cmp dword [0x1007bcb4], esi
setl cl
lea edx, [eax - 1]
imul edx, eax
test dl, 1
sete al
or al, cl
je 0x1005c490
jmp 0x1005a870
mov eax, dword [0x10078834]
mov ecx, dword [0x10078838]
mov edx, eax
not edx
and edx, ecx
add edx, eax
or eax, ecx
sub edx, eax
add edx, 0xfc333d39
mov dword [edi], edx
jmp 0x1005c41d
mov eax, dword [0x1007bfe8]
mov ecx, dword [0x10078764]
mov edx, dword [0x10078768]
mov esi, ecx
xor esi, edx
add esi, edx
or edx, ecx
not edx
lea edx, [esi + edx*2]
not ecx
sub ecx, edx
add ecx, 9
cmp dword [0x1007bfe4], ecx
setge dl
setl cl
mov esi, eax
and esi, 1
add esi, eax
mov edi, eax
not edi
mov ebx, edi
and ebx, 1
sub esi, ebx
add esi, edi
lea ebx, [edi + esi]
add ebx, 2
imul ebx, eax
test bl, 1
sete al
mov ah, cl
and ah, al
and dl, al
add dl, ah
add dl, al
or cl, al
add cl, dl
add cl, 1
test cl, 1
mov edi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
jne 0x1005c5a1
mov eax, dword [esi]
mov ecx, dword [ebx]
mov edx, dword [edi]
mov dword [edx], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [eax], ecx
mov eax, dword [0x1007bcc0]
lea ecx, [eax + eax]
mov edx, eax
not edx
add ecx, edx
add ecx, 0xdda0ffc2
cmp dword [0x1007bcbc], 0xa
setl dl
imul ecx, eax
test cl, 1
sete al
or al, dl
cmp al, 1
je 0x1005c5b2
mov eax, dword [esi]
mov ecx, dword [ebx]
mov edx, dword [edi]
mov dword [edx], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [eax], ecx
jmp 0x1005c565
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret