Function at 0x410c50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xf4
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 8]
mov ebx, 1
mov esi, 1
shl esi, cl
mov dword [ebp - 0xa8], esi
mov cl, byte [eax + 4]
shl ebx, cl
mov ecx, dword [eax + 0x5c]
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0x60]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 0x58]
mov dword [ebp - 0x94], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x18], ecx
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [eax + 0x74]
mov dword [ebp - 0x40], ecx
mov ecx, dword [eax + 0x78]
mov dword [ebp - 0xbc], ecx
mov ecx, dword [eax + 0x7c]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [eax]
mov dword [ebp - 0xb4], ecx
mov edi, dword [eax + 0x84]
mov ecx, dword [eax + 0x68]
mov dword [ebp - 0xac], ecx
mov ecx, dword [eax + 0x6c]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x90], ecx
mov esi, dword [eax + 0xc]
mov ecx, dword [eax + 0x64]
mov dword [ebp - 0x14], ecx
mov ecx, eax
xor eax, eax
mov dword [edx], 0
mov edx, dword [ebp + 0x20]
mov dword [edx], 0
cmp edi, 0xffffffff
je 0x412bfc
neg ebx
test esi, esi
mov dword [ebp - 0x88], esi
mov edx, ecx
jne 0x410d36
lea eax, [ebp - 0x10]
mov dword [ebp - 0x90], eax
mov al, byte [edx + 0x88]
mov byte [ebp - 0x10], al
mov dword [ebp - 0x88], 1
mov esi, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x10]
lea eax, [edx + 0x18]
mov dword [ebp - 0x98], eax
dec dword [ebp - 0xa8]
not ebx
mov dword [ebp - 0xb8], ebx
cmp edi, 0xfffffffe
jne 0x410e0c
test ecx, ecx
setne al
cmp dword [ebp - 0x94], 0x40
mov esi, ecx
setl cl
xor cl, al
mov ebx, dword [ebp - 0x18]
jne 0x410f12
test esi, esi
mov ecx, esi
je 0x410f1a
neg ecx
mov eax, dword [ebp - 0x94]
lea esi, [eax - 0x40]
cmp esi, ecx
mov eax, ecx
jb 0x410d95
mov eax, esi
mov dword [ebp - 0x14], eax
mov edx, ecx
sub ecx, eax
mov edi, 0x2cc180b7
sub edi, eax
cmp edx, esi
mov eax, dword [ebp + 0xc]
ja 0x410dac
mov edx, esi
neg ecx
mov dword [ebp - 0xb0], ecx
lea ecx, [edi + eax - 0x2cc180b7]
mov dword [ebp - 0xc0], ecx
neg edx
mov ecx, dword [ebp - 0x94]
mov esi, dword [ebp + 8]
lea esi, [ecx + esi + 0x18]
mov edi, ecx
mov ebx, dword [ebp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov cl, byte [eax]
inc eax
inc edi
mov byte [esi], cl
inc dword [ebx]
inc esi
dec edx
jne 0x410de0
mov ecx, dword [ebp - 0x94]
add ecx, 0x59ad1a0b
sub ecx, dword [ebp - 0x14]
add ecx, 0xa652e5f5
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
jmp 0x410f2f
test esi, esi
mov dword [ebp - 0xc8], edi
setne al
test edi, edi
setne cl
xor edx, edx
xor cl, al
jne 0x410eec
test esi, esi
je 0x410eec
mov ecx, dword [ebp - 0xc8]
neg ecx
mov eax, esi
neg eax
cmp ecx, eax
ja 0x410e40
mov ecx, eax
mov dword [ebp - 0x24], ecx
mov eax, ecx
neg eax
mov dword [ebp - 0x34], eax
xor edi, edi
mov ebx, eax
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x14]
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], esi
lea ecx, [esi - 0x3a324c24]
sub ecx, edx
lea edx, [ecx + 0x3a324c24]
mov esi, dword [ebp - 0x88]
cmp edx, esi
mov edx, 0
jb 0x410e85
mov edx, esi
lea ecx, [edx + ecx + 0x3a324c24]
mov edx, dword [ebp - 0x90]
mov cl, byte [edx + ecx]
mov edi, dword [ebp - 0x14]
mov byte [edx + edi], cl
mov byte [eax], cl
inc edi
cmp edi, esi
mov edx, edi
mov ecx, 0
je 0x410eab
mov ecx, edx
mov edi, dword [ebp - 0x1c]
inc edi
inc eax
dec ebx
mov esi, ecx
mov edx, dword [ebp - 0x8c]
jne 0x410e60
mov eax, dword [ebp - 0x24]
add dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x98]
mov esi, ecx
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x34]
jmp 0x411148
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x98]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x88]
jmp 0x411148
mov dword [ebp - 0xb0], esi
jmp 0x410f20
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0x94]
cmp ecx, 4
jg 0x410f46
mov dword [edx + 0x58], ecx
cmp dword [ebp + 0x24], 0
setne al
movzx eax, al
jmp 0x412bfc
mov dword [ebp - 0x94], ecx
mov ecx, dword [ebp - 0xb4]
neg ecx
sub ecx, dword [edx + 4]
neg ecx
mov eax, 0x300
shl eax, cl
cmp eax, 0xfffff8ca
je 0x41106c
xor ecx, ecx
cmp eax, 0xfffff8ca
je 0x41104f
mov ecx, eax
neg ecx
mov esi, 0x736
sub esi, ecx
mov dword [ebp - 0x14], esi
not esi
or esi, 0xf
xor ecx, ecx
cmp esi, 0xffffffff
je 0x411045
and dword [ebp - 0x14], 0xfffffff0
mov esi, 0xffffffff
nop
mov edi, esi
and edi, 0x36ca7093
mov edx, ebx
mov ebx, ecx
and ebx, 0x49358f6c
add ebx, edi
mov edi, esi
not edi
xor ebx, 0x36ca709b
and edi, 8
or edi, ebx
mov ebx, edx
mov word [ebx + ecx*2 + 0xe], 0x400
mov word [ebx + ecx*2 + 0xc], 0x400
mov word [ebx + ecx*2 + 0xa], 0x400
mov word [ebx + ecx*2 + 8], 0x400
mov word [ebx + ecx*2 + 6], 0x400
mov word [ebx + ecx*2 + 4], 0x400
mov word [ebx + ecx*2 + 2], 0x400
mov word [ebx + ecx*2], 0x400
mov word [ebx + edi*2 + 0xe], 0x400
mov word [ebx + edi*2 + 0xc], 0x400
mov word [ebx + edi*2 + 0xa], 0x400
mov word [ebx + edi*2 + 8], 0x400
mov word [ebx + edi*2 + 6], 0x400
mov word [ebx + edi*2 + 4], 0x400
mov word [ebx + edi*2 + 2], 0x400
mov word [ebx + edi*2], 0x400
add ecx, 0x10
add esi, 0xfffffff0
cmp dword [ebp - 0x14], ecx
jne 0x410fa0
mov ecx, dword [ebp - 0x14]
lea edx, [eax + 0x736]
cmp edx, ecx
je 0x41106c
add eax, 0x736
sub eax, ecx
lea edx, [ebx + ecx*2]
nop
nop
nop
nop
nop
nop
nop
mov word [edx], 0x400
inc ecx
add edx, 2
dec eax
jne 0x411060
mov eax, dword [ebp - 0x90]
mov edi, dword [ebp - 0x88]
mov byte [edi + eax - 1], 0
mov esi, dword [ebp + 8]
movzx eax, byte [esi + 0x18]
shl eax, 8
movzx ecx, byte [esi + 0x19]
add ecx, eax
shl ecx, 8
movzx edx, byte [esi + 0x1a]
add edx, ecx
shl edx, 8
movzx eax, byte [esi + 0x1b]
mov ecx, eax
not ecx
mov ebx, edx
not ebx
and ecx, 0x84d645
and eax, 0xba
and ebx, 0x84d645
and edx, 0x7b2900
add eax, ecx
add edx, ebx
xor edx, eax
shl edx, 8
movzx eax, byte [esi + 0x1c]
mov ecx, eax
not ecx
mov ebx, edx
not ebx
and ecx, 0x80f28a18
and eax, 0xe7
and ebx, 0x80f28a18
and edx, 0x7f0d7500
add eax, ecx
mov ecx, edi
add edx, ebx
xor edx, eax
mov dword [ebp - 0x20], edx
lea eax, [esi + 0x1d]
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0xe0], 1
mov dword [ebp - 0xbc], 1
mov dword [ebp - 0x40], 1
xor esi, esi
mov dword [ebp - 0xc8], 0
xor edx, edx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x88], ecx
test esi, esi
mov eax, ecx
je 0x411160
mov eax, dword [ebp - 0x24]
mov ecx, 1
sub ecx, eax
mov eax, dword [ebp - 0x90]
sub eax, ecx
mov ebx, 8
mov edx, dword [ebp - 0x18]
lea ecx, [edx + 0x664]
mov dword [ebp - 0xf4], ecx
lea ecx, [edx + 0xa68]
mov dword [ebp - 0xec], ecx
mov ecx, dword [ebp - 0x98]
mov edx, ecx
mov esi, 0xffffffc0
lea edi, [ecx - 0x40]
mov dword [ebp - 0xd8], edi
lea edi, [ecx - 1]
mov dword [ebp - 0xcc], edi
lea edi, [ecx + 0x17]
mov dword [ebp - 0xe8], edi
mov edi, dword [ebp + 8]
lea ecx, [ecx + edi + 0x18]
mov dword [ebp - 0xdc], ecx
mov al, byte [eax]
mov dword [ebp - 0x14], eax
sub ebx, dword [ebp - 0xb4]
mov dword [ebp - 0xc4], ebx
neg edx
mov dword [ebp - 0xf0], edx
sub esi, edx
mov dword [ebp - 0xd4], esi
not dword [ebp - 0xa8]
not dword [ebp - 0xb8]
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x2c]
jmp 0x41121f
mov eax, dword [ebp - 0xc8]
add eax, 0xbf562ee2
sub eax, dword [ebp - 0x48]
add eax, 0x40a9d11e
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0x94]
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xa0], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x9c], eax
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x3c]
jmp 0x41127d
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x30]
mov byte [edx + esi], cl
mov dword [ebp - 0x14], ecx
mov edx, esi
neg edx
mov esi, 1
sub esi, edx
mov ecx, dword [ebp - 0x24]
lea edi, [ecx + ecx + 9]
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x98]
lea eax, [eax - 0x4e7b8baf]
mov esi, dword [ebp - 0x1c]
sub eax, esi
lea esi, [eax + edx + 0x4e7b8baf]
cmp esi, 0x17
jg 0x411380
mov dword [ebp - 0x34], edi
mov eax, 1
test esi, esi
js 0x412bfc
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0x18], ebx
jle 0x4115fa
mov eax, edx
neg eax
mov esi, eax
sub esi, dword [ebp - 0xcc]
mov edi, 0x8da35844
sub edi, esi
sub edi, dword [ebp - 0x1c]
xor ebx, ebx
cmp edi, 0x8da35843
je 0x4115cd
mov dword [ebp - 0x94], edx
sub eax, dword [ebp - 0x98]
mov ecx, 0x58d66e3
sub ecx, eax
mov edx, dword [ebp - 0x1c]
sub ecx, edx
add ecx, 0xfa72991d
mov dword [ebp - 0xd0], ecx
mov eax, ecx
xor eax, 0x1f
xor ebx, ebx
and eax, ecx
mov ecx, dword [ebp + 8]
je 0x4115bc
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x94]
lea eax, [eax + 0x546bf0da]
sub eax, edx
add eax, 0xab940f26
mov edi, edx
mov edx, dword [ebp - 0xcc]
lea esi, [edx + eax]
add esi, edi
add eax, dword [ebp - 0xe8]
add eax, ecx
cmp esi, dword [ebp - 0x98]
sbb bl, bl
cmp eax, edi
sbb al, al
or al, bl
and al, 1
xor ebx, ebx
movzx eax, al
cmp eax, 1
mov esi, 0xffffffff
mov eax, edi
je 0x411388
mov dl, 1
test dl, dl
mov edx, eax
mov edi, ecx
mov eax, dword [ebp - 0x38]
jne 0x4115bc
jmp 0x411390
mov esi, dword [ebp + 0x1c]
jmp 0x411729
mov edx, eax
mov edi, ecx
mov eax, dword [ebp - 0x38]
nop
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x38], eax
mov al, byte [edx + ebx]
mov byte [ebp - 0x3c], al
mov al, byte [edx + ebx + 1]
mov byte [ebp - 0x44], al
mov al, byte [edx + ebx + 2]
mov byte [ebp - 0x4c], al
mov al, byte [edx + ebx + 3]
mov byte [ebp - 0x40], al
mov al, byte [edx + ebx + 4]
mov byte [ebp - 0x51], al
mov al, byte [edx + ebx + 5]
mov byte [ebp - 0x48], al
mov al, byte [edx + ebx + 6]
mov byte [ebp - 0x52], al
mov al, byte [edx + ebx + 7]
mov byte [ebp - 0x50], al
mov dword [ebp - 0x2c], esi
mov esi, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x58], eax
mov eax, ebx
mov cl, byte [edx + ebx + 8]
mov byte [ebp - 0x6a], cl
mov cl, byte [edx + ebx + 9]
mov byte [ebp - 0x6c], cl
mov cl, byte [edx + ebx + 0xa]
mov byte [ebp - 0x6e], cl
mov cl, byte [edx + ebx + 0xb]
mov byte [ebp - 0x70], cl
mov cl, byte [edx + ebx + 0xc]
mov byte [ebp - 0x72], cl
mov cl, byte [edx + ebx + 0xd]
mov byte [ebp - 0x7c], cl
mov cl, byte [edx + ebx + 0xe]
mov byte [ebp - 0x81], cl
and dword [ebp - 0x2c], 0x318e2d2d
and esi, 0xce71d2d2
add esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
not ecx
xor esi, 0x318e2d3d
and ecx, 0x10
mov dword [ebp - 0x68], ecx
or esi, ecx
mov cl, byte [edx + esi]
mov byte [ebp - 0x2c], cl
mov cl, byte [edx + esi + 1]
mov byte [ebp - 0x53], cl
mov cl, byte [edx + esi + 2]
mov byte [ebp - 0x59], cl
mov cl, byte [edx + esi + 3]
mov byte [ebp - 0x60], cl
mov cl, byte [edx + esi + 4]
mov byte [ebp - 0x61], cl
mov cl, byte [edx + esi + 5]
mov byte [ebp - 0x62], cl
mov cl, byte [edx + esi + 6]
mov byte [ebp - 0x63], cl
mov cl, byte [edx + esi + 7]
mov byte [ebp - 0x64], cl
mov cl, byte [edx + esi + 8]
mov byte [ebp - 0x69], cl
mov cl, byte [edx + esi + 9]
mov byte [ebp - 0x6b], cl
mov cl, byte [edx + esi + 0xa]
mov byte [ebp - 0x6d], cl
mov cl, byte [edx + esi + 0xb]
mov byte [ebp - 0x6f], cl
mov cl, byte [edx + esi + 0xc]
mov byte [ebp - 0x71], cl
mov cl, byte [edx + esi + 0xd]
mov byte [ebp - 0x78], cl
mov cl, byte [edx + esi + 0xe]
mov byte [ebp - 0x80], cl
mov cl, byte [edx + esi + 0xf]
mov byte [ebp - 0x82], cl
mov esi, edx
mov dl, byte [esi + ebx + 0xf]
mov byte [edi + ebx + 0x27], dl
mov edx, esi
mov esi, dword [ebp - 0x24]
mov cl, byte [ebp - 0x81]
mov byte [edi + ebx + 0x26], cl
mov cl, byte [ebp - 0x7c]
mov byte [edi + ebx + 0x25], cl
mov cl, byte [ebp - 0x72]
mov byte [edi + ebx + 0x24], cl
mov cl, byte [ebp - 0x70]
mov byte [edi + ebx + 0x23], cl
mov cl, byte [ebp - 0x6e]
mov byte [edi + ebx + 0x22], cl
mov cl, byte [ebp - 0x6c]
mov byte [edi + ebx + 0x21], cl
mov cl, byte [ebp - 0x6a]
mov byte [edi + ebx + 0x20], cl
mov cl, byte [ebp - 0x50]
mov byte [edi + ebx + 0x1f], cl
mov cl, byte [ebp - 0x52]
mov byte [edi + ebx + 0x1e], cl
mov ch, byte [ebp - 0x48]
mov byte [edi + ebx + 0x1d], ch
mov cl, byte [ebp - 0x51]
mov byte [edi + ebx + 0x1c], cl
mov cl, byte [ebp - 0x40]
mov byte [edi + ebx + 0x1b], cl
mov cl, byte [ebp - 0x4c]
mov byte [edi + ebx + 0x1a], cl
mov cl, byte [ebp - 0x44]
mov byte [edi + ebx + 0x19], cl
mov cl, byte [ebp - 0x3c]
mov byte [edi + ebx + 0x18], cl
mov ecx, dword [ebp - 0x58]
and ecx, 0x76aa5355
and eax, 0x8955acaa
add eax, ecx
xor eax, 0x76aa5345
or eax, dword [ebp - 0x68]
mov cl, byte [ebp - 0x82]
mov byte [edi + eax + 0x27], cl
mov cl, byte [ebp - 0x80]
mov byte [edi + eax + 0x26], cl
mov cl, byte [ebp - 0x78]
mov byte [edi + eax + 0x25], cl
mov cl, byte [ebp - 0x71]
mov byte [edi + eax + 0x24], cl
mov cl, byte [ebp - 0x6f]
mov byte [edi + eax + 0x23], cl
mov cl, byte [ebp - 0x6d]
mov byte [edi + eax + 0x22], cl
mov cl, byte [ebp - 0x6b]
mov byte [edi + eax + 0x21], cl
mov cl, byte [ebp - 0x69]
mov byte [edi + eax + 0x20], cl
mov cl, byte [ebp - 0x64]
mov byte [edi + eax + 0x1f], cl
mov cl, byte [ebp - 0x63]
mov byte [edi + eax + 0x1e], cl
mov cl, byte [ebp - 0x62]
mov byte [edi + eax + 0x1d], cl
mov cl, byte [ebp - 0x61]
mov byte [edi + eax + 0x1c], cl
mov cl, byte [ebp - 0x60]
mov byte [edi + eax + 0x1b], cl
mov cl, byte [ebp - 0x59]
mov byte [edi + eax + 0x1a], cl
mov cl, byte [ebp - 0x53]
mov byte [edi + eax + 0x19], cl
mov cl, byte [ebp - 0x2c]
mov byte [edi + eax + 0x18], cl
mov eax, dword [ebp - 0x38]
add ebx, 0x20
add esi, 0xffffffe0
cmp eax, ebx
jne 0x411390
mov ebx, eax
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0xd0], ebx
mov edx, dword [ebp - 0x94]
je 0x4115fa
mov ecx, dword [ebp - 0x98]
lea eax, [ecx + edx]
sub eax, ebx
mov edi, dword [ebp - 0x1c]
sub eax, edi
lea esi, [ecx + ebx]
lea edi, [edi + ebx]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov cl, byte [edi]
mov byte [esi], cl
inc ebx
inc esi
inc edi
dec eax
jne 0x4115f0
mov esi, dword [ebp - 0xb0]
test esi, esi
sete al
cmp dword [ebp - 0xa4], 0x3f
setg cl
or cl, al
movzx eax, cl
cmp eax, 1
je 0x4116e0
mov al, 1
test al, al
je 0x4116e0
mov eax, esi
neg eax
mov ecx, dword [ebp - 0xd4]
lea edi, [ecx + edx + 0x7ee99bc4]
mov ebx, dword [ebp - 0x1c]
sub edi, ebx
add edi, 0x8116643c
cmp edi, eax
mov esi, eax
jb 0x41164b
mov esi, edi
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x98]
lea edi, [ecx + edx + 0x65c8d8ba]
sub edi, ebx
mov ecx, 0x954f9aac
sub ecx, esi
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0xd8]
lea esi, [ecx + edx]
sub esi, ebx
cmp eax, esi
ja 0x411678
mov eax, esi
sub edx, ebx
add edi, 0x9a372746
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0x2c]
lea esi, [esi + ecx + 0x6ab06554]
mov dword [ebp - 0x2c], esi
neg eax
add edx, dword [ebp - 0xdc]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp - 0xa4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov bl, byte [ecx]
inc ecx
inc edi
mov byte [edx], bl
inc dword [esi]
inc edx
dec eax
jne 0x4116b0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
neg eax
sub dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xc0], eax
mov edx, ecx
jmp 0x4116e6
mov edx, dword [ebp - 0xa4]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp + 0x1c]
mov edi, dword [ebp - 0x34]
cmp edx, 0x17
setg al
cmp dword [ebp + 0x24], 0
setne cl
or cl, al
movzx eax, cl
cmp eax, 1
je 0x411720
mov al, 1
test al, al
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x1c], eax
je 0x411729
jmp 0x4127fc
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x30]
cmp eax, esi
mov ecx, eax
jae 0x4127e3
mov eax, dword [ebp - 0xac]
lea eax, [ecx + eax]
not eax
mov ecx, eax
or ecx, dword [ebp - 0xa8]
not ecx
mov dword [ebp - 0x38], ecx
mov esi, edi
shl esi, 4
lea ecx, [esi + ecx - 0x10a49ba]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x28]
cmp ecx, 0xffffff
ja 0x4117c0
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x94], edx
shl ecx, 8
mov ebx, dword [ebp - 0x20]
shl ebx, 8
mov esi, dword [ebp - 0x1c]
movzx edx, byte [esi]
inc esi
mov dword [ebp - 0x1c], esi
mov esi, edx
not esi
mov edi, ebx
not edi
and esi, 0x48337fb7
and edx, 0x48
and edi, 0x48337fb7
and ebx, 0xb7cc8000
add edx, esi
add ebx, edi
xor ebx, edx
mov edx, ebx
mov esi, dword [ebp - 0x18]
jmp 0x4117d1
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x20]
mov esi, ebx
mov ebx, dword [ebp - 0x24]
mov edi, ecx
shr edi, 0xb
movzx esi, word [esi + ebx*2 + 0x2149374]
imul edi, esi
cmp edx, edi
jae 0x411990
mov dword [ebp - 0x20], edx
mov edx, 0x800
sub edx, esi
shr edx, 5
add edx, esi
mov ecx, dword [ebp - 0x18]
mov word [ecx + ebx*2 + 0x2149374], dx
or eax, dword [ebp - 0xb8]
not eax
mov ecx, dword [ebp - 0xb4]
shl eax, cl
mov ecx, dword [ebp - 0x14]
movzx edx, cl
mov ecx, dword [ebp - 0xc4]
shr edx, cl
neg eax
sub edx, eax
imul ebx, edx, 0x300
lea eax, [ebx + 0x736]
mov dword [ebp - 0x24], eax
mov ecx, 1
cmp dword [ebp - 0x34], 7
jl 0x411a10
mov eax, dword [ebp - 0x9c]
lea eax, [eax - 0x40f45096]
sub eax, dword [ebp - 0x8c]
lea edx, [eax + 0x40f45096]
xor ecx, ecx
cmp edx, dword [ebp - 0x88]
jb 0x41186e
mov ecx, dword [ebp - 0x88]
lea eax, [ecx + eax + 0x40f45096]
mov ecx, dword [ebp - 0x90]
movzx eax, byte [ecx + eax]
mov dword [ebp - 0x28], eax
add ebx, 0x836
mov dword [ebp - 0x2c], ebx
mov ecx, 1
mov edx, dword [ebp - 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x14], ecx
mov eax, ecx
mov ecx, edx
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
add edx, edx
mov dword [ebp - 0x28], edx
and edx, 0x100
mov dword [ebp - 0x20], edx
lea eax, [ebx + eax]
neg edx
sub eax, edx
cmp edi, 0xffffff
ja 0x4118dc
shl edi, 8
shl ecx, 8
mov ebx, dword [ebp - 0x1c]
movzx edx, byte [ebx]
inc ebx
mov dword [ebp - 0x1c], ebx
add ecx, edx
mov ebx, edi
shr ebx, 0xb
movzx esi, word [esi + eax*2]
imul ebx, esi
cmp ecx, ebx
jae 0x411920
mov edx, 0x800
sub edx, esi
shr edx, 5
add edx, esi
mov esi, dword [ebp - 0x18]
mov word [esi + eax*2], dx
mov esi, dword [ebp - 0x14]
add esi, esi
cmp dword [ebp - 0x20], 0
mov edx, ecx
je 0x411975
jmp 0x411c15
mov edx, esi
shr edx, 5
sub esi, edx
mov edx, dword [ebp - 0x18]
mov word [edx + eax*2], si
add edi, 0x5e06a4f7
sub edi, ebx
add ecx, 0x35111b74
sub ecx, ebx
mov esi, dword [ebp - 0x14]
add esi, esi
mov edx, esi
not edx
and edx, 0x3e0e448d
and esi, 0xc1f1bb72
add esi, edx
add edi, 0xa1f95b09
add ecx, 0xcaeee48c
xor esi, 0x3e0e448c
cmp dword [ebp - 0x20], 0
mov ebx, edi
mov edx, ecx
je 0x411c15
cmp esi, 0x100
mov edi, ebx
mov eax, ebx
mov ecx, esi
mov ebx, dword [ebp - 0x2c]
jl 0x4118a0
jmp 0x411d04
mov eax, esi
shr eax, 5
add esi, 0xffffe902
sub esi, eax
add esi, 0x16fe
mov eax, ebx
mov ebx, dword [ebp - 0x18]
mov word [ebx + eax*2 + 0x2149374], si
sub ecx, edi
add edx, 0x4959657d
sub edx, edi
add edx, 0xb6a69a83
mov eax, dword [ebp - 0x34]
lea eax, [eax + 0xc0]
cmp ecx, 0xffffff
ja 0x411a20
shl ecx, 8
shl edx, 8
mov esi, dword [ebp - 0x1c]
mov ebx, ecx
movzx ecx, byte [esi]
inc esi
mov dword [ebp - 0x1c], esi
mov edi, edx
mov edx, ecx
not edx
mov esi, edi
not esi
and edx, 0x6f163188
and ecx, 0x77
and esi, 0x6f163188
and edi, 0x90e9ce00
add ecx, edx
add edi, esi
xor edi, ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x18]
jmp 0x411a22
mov edx, dword [ebp - 0x20]
jmp 0x411c30
mov edi, edx
mov edx, ecx
shr edx, 0xb
mov esi, ecx
movzx ecx, word [ebx + eax*2]
imul edx, ecx
cmp edi, edx
jb 0x411d9b
add esi, 0x314f31
sub esi, edx
add edi, 0x7f06a83f
sub edi, edx
mov edx, ecx
shr edx, 5
add ecx, 0xffff8097
sub ecx, edx
add esi, 0xffceb0cf
add edi, 0x80f957c1
add ecx, 0x7f69
mov word [ebx + eax*2], cx
mov edx, dword [ebp - 0x34]
neg edx
mov eax, 0xcc
sub eax, edx
cmp esi, 0xffffff
mov ecx, esi
ja 0x411ad0
mov dword [ebp - 0x24], edx
mov esi, eax
shl ecx, 8
shl edi, 8
mov eax, edi
mov ebx, ecx
mov edx, dword [ebp - 0x1c]
movzx ecx, byte [edx]
inc edx
mov dword [ebp - 0x1c], edx
mov edx, ecx
not edx
not edi
and edx, 0x3de01d40
and ecx, 0xbf
and edi, 0x3de01d40
and eax, 0xc21fe200
add ecx, edx
add eax, edi
xor eax, ecx
mov ecx, ebx
mov ebx, dword [ebp - 0x18]
jmp 0x411ad7
mov dword [ebp - 0x24], edx
mov esi, eax
mov eax, edi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], eax
mov edx, ecx
shr edx, 0xb
movzx edi, word [ebx + esi*2]
imul edx, edi
mov esi, eax
sub esi, edx
jae 0x411df4
mov ecx, 0x800
sub ecx, edi
shr ecx, 5
add ecx, edi
mov eax, dword [ebp - 0x14]
mov word [ebx + eax*2], cx
mov eax, dword [ebp - 0x38]
mov edi, dword [ebp - 0x2c]
lea ecx, [eax + edi + 0xf0]
cmp edx, 0xffffff
ja 0x411b60
shl edx, 8
mov ebx, dword [ebp - 0x20]
shl ebx, 8
mov esi, dword [ebp - 0x1c]
movzx eax, byte [esi]
inc esi
mov dword [ebp - 0x1c], esi
mov esi, eax
not esi
mov edi, ebx
not edi
and esi, 0x6a1b670
and eax, 0x8f
and edi, 0x6a1b670
and ebx, 0xf95e4900
add eax, esi
add ebx, edi
xor ebx, eax
jmp 0x411b63
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x20], ebx
mov esi, edx
shr esi, 0xb
mov edi, dword [ebp - 0x18]
movzx eax, word [edi + ecx*2]
imul esi, eax
mov dword [ebp - 0x28], esi
cmp ebx, esi
jae 0x411e64
mov edx, 0x800
sub edx, eax
shr edx, 5
neg eax
sub eax, edx
neg eax
mov word [edi + ecx*2], ax
mov eax, 1
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
je 0x412bfc
mov edi, dword [ebp - 0x88]
cmp ecx, edi
adc ecx, 0
mov dword [ebp - 0xa0], ecx
cmp dword [ebp - 0x34], 6
setg cl
mov ebx, dword [ebp - 0x9c]
lea edx, [ebx + 0x25579755]
sub edx, dword [ebp - 0x8c]
lea esi, [edx - 0x25579755]
xor eax, eax
cmp esi, edi
mov esi, 0
jb 0x411be4
mov esi, edi
movzx ecx, cl
mov dword [ebp - 0x24], ecx
lea edx, [esi + edx - 0x25579755]
mov esi, dword [ebp - 0x90]
mov cl, byte [esi + edx]
mov byte [esi + ebx], cl
neg ebx
mov esi, 1
sub esi, ebx
cmp esi, edi
je 0x411250
mov eax, esi
jmp 0x411250
cmp esi, 0xff
mov edi, ebx
mov eax, ebx
mov ecx, esi
jg 0x411d04
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x24]
lea ebx, [eax + ecx]
cmp edi, 0xffffff
ja 0x411c60
mov dword [ebp - 0x14], ecx
shl edi, 8
shl edx, 8
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
inc eax
mov dword [ebp - 0x1c], eax
add edx, ecx
jmp 0x411c63
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x18]
mov esi, edi
shr esi, 0xb
movzx ecx, word [eax + ebx*2]
imul esi, ecx
cmp edx, esi
mov dword [ebp - 0x20], ebx
mov ebx, edx
jae 0x411ca0
mov edx, 0x800
sub edx, ecx
shr edx, 5
neg ecx
sub ecx, edx
neg ecx
mov edx, dword [ebp - 0x20]
mov word [eax + edx*2], cx
mov ecx, dword [ebp - 0x14]
add ecx, ecx
mov edx, ebx
mov eax, esi
jmp 0x411cf6
mov edx, ecx
shr edx, 5
add ecx, 0xfffff5c6
sub ecx, edx
add ecx, 0xa3a
mov edx, dword [ebp - 0x20]
mov word [eax + edx*2], cx
add edi, 0x59cde390
sub edi, esi
add ebx, 0x78bfafea
sub ebx, esi
mov ecx, dword [ebp - 0x14]
add ecx, ecx
mov eax, ecx
not eax
and eax, 0xa9711718
and ecx, 0x568ee8e6
add ecx, eax
add edi, 0xa6321c70
add ebx, 0x87405016
xor ecx, 0xa9711719
mov eax, edi
mov edx, ebx
cmp ecx, 0x100
mov edi, eax
jl 0x411c30
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 0x30]
mov byte [eax + esi], cl
mov edx, dword [ebp - 0xa0]
mov eax, edx
neg eax
mov ebx, ecx
mov ecx, dword [ebp - 0x88]
cmp edx, ecx
mov edi, eax
sbb edi, 0
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x9c]
mov byte [eax + edx], bl
inc edx
cmp edx, ecx
mov ecx, 0
je 0x411d4a
mov ecx, edx
inc esi
neg edi
mov dword [ebp - 0xa0], edi
mov eax, dword [ebp - 0x34]
cmp eax, 4
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x18]
mov edi, 0
jl 0x41127d
mov dword [ebp - 0x24], ecx
cmp eax, 9
jg 0x411d84
neg eax
mov edi, 0xfffffffd
jmp 0x411d8b
neg eax
mov edi, 0xfffffffa
sub edi, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x9c], eax
jmp 0x41127d
mov esi, 0x800
sub esi, ecx
shr esi, 5
add esi, ecx
mov word [ebx + eax*2], si
cmp dword [ebp - 0x34], 6
setg al
movzx esi, al
mov dword [ebp - 0x24], 0x334
mov dword [ebp - 0x34], 0x3b4
mov dword [ebp - 0x2c], 0x434
mov dword [ebp - 0x14], 0x333
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xf4]
lea esi, [esi + esi*2]
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], ecx
jmp 0x41201b
sub ecx, edx
mov edx, edi
shr edx, 5
add edi, 0x6851
sub edi, edx
add edi, 0xffff97af
mov eax, dword [ebp - 0x14]
mov word [ebx + eax*2], di
mov edi, 0xd8
sub edi, dword [ebp - 0x24]
cmp ecx, 0xffffff
mov ebx, ecx
ja 0x411eaf
shl ebx, 8
mov ecx, esi
shl ecx, 8
mov edx, dword [ebp - 0x1c]
movzx esi, byte [edx]
inc edx
mov dword [ebp - 0x1c], edx
mov edx, esi
not edx
mov eax, edi
mov edi, ecx
not edi
and edx, 0xd31d024f
and esi, 0xb0
and edi, 0xd31d024f
and ecx, 0x2ce2fd00
add esi, edx
add ecx, edi
mov edi, eax
xor ecx, esi
jmp 0x411eb1
mov esi, eax
shr esi, 5
add eax, 0xffff9686
sub eax, esi
add eax, 0x697a
mov word [edi + ecx*2], ax
add edx, 0xaef1ed12
mov ecx, dword [ebp - 0x28]
sub edx, ecx
mov eax, dword [ebp - 0x20]
add eax, 0xef744fd
sub eax, ecx
add edx, 0x510e12ee
add eax, 0xf108bb03
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x40], ecx
mov ecx, eax
mov ebx, dword [ebp - 0xe4]
jmp 0x411fe3
mov ecx, esi
mov dword [ebp - 0x14], edi
mov edx, ebx
shr edx, 0xb
mov eax, dword [ebp - 0x18]
movzx edi, word [eax + edi*2]
imul edx, edi
mov esi, ecx
sub esi, edx
jae 0x411f00
mov esi, 0x800
sub esi, edi
shr esi, 5
neg edi
sub edi, esi
neg edi
mov esi, dword [ebp - 0x14]
mov word [eax + esi*2], di
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x8c], eax
mov ebx, dword [ebp - 0xe4]
jmp 0x411fe3
add ebx, 0x2df10932
sub ebx, edx
add ebx, 0xd20ef6ce
mov edx, edi
shr edx, 5
add edi, 0xffffa1d8
sub edi, edx
add edi, 0x5e28
mov ecx, dword [ebp - 0x14]
mov word [eax + ecx*2], di
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx + 0xe4]
cmp ebx, 0xffffff
ja 0x411f4a
shl ebx, 8
shl esi, 8
mov edi, dword [ebp - 0x1c]
movzx edx, byte [edi]
inc edi
add esi, edx
jmp 0x411f4d
mov edi, dword [ebp - 0x1c]
mov edx, ebx
shr edx, 0xb
mov dword [ebp - 0x14], ecx
movzx ecx, word [eax + ecx*2]
imul edx, ecx
cmp esi, edx
jae 0x411f80
mov dword [ebp - 0x1c], edi
mov edi, 0x800
sub edi, ecx
shr edi, 5
add edi, ecx
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x20], ecx
mov ebx, dword [ebp - 0xe4]
jmp 0x411fba
mov dword [ebp - 0x1c], edi
add ebx, 0x9d818c86
sub ebx, edx
add ebx, 0x627e737a
add esi, 0xea3b48bc
sub esi, edx
add esi, 0x15c4b744
mov edx, ecx
shr edx, 5
sub ecx, edx
mov di, cx
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x20], ecx
mov edx, ebx
mov ebx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x14]
mov word [eax + ecx*2], di
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x40], eax
mov eax, ebx
mov dword [ebp - 0x8c], eax
mov ebx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xe0], eax
mov ecx, esi
cmp dword [ebp - 0x34], 6
setg al
movzx edi, al
mov dword [ebp - 0x24], 0x536
mov dword [ebp - 0x34], 0x5b6
mov dword [ebp - 0x2c], 0x636
mov dword [ebp - 0x14], 0x535
mov eax, dword [ebp - 0xec]
lea esi, [edi + edi*2 + 8]
mov dword [ebp - 0xbc], ebx
mov edi, ecx
mov ecx, dword [ebp - 0x1c]
cmp edx, 0xffffff
ja 0x41203a
mov dword [ebp - 0x3c], esi
shl edx, 8
shl edi, 8
movzx esi, byte [ecx]
inc ecx
mov dword [ebp - 0x1c], ecx
add edi, esi
jmp 0x412040
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], edi
mov ebx, edx
shr ebx, 0xb
movzx esi, word [eax]
imul ebx, esi
sub edi, ebx
jae 0x41208b
mov dword [ebp - 0x28], ebx
mov ecx, 0x800
sub ecx, esi
neg esi
shr ecx, 5
sub esi, ecx
neg esi
mov word [eax], si
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc8], 0
mov eax, 3
mov ebx, dword [ebp - 0x18]
jmp 0x412159
mov ecx, dword [ebp - 0x18]
add edx, 0xb037ebef
sub edx, ebx
add edx, 0x4fc81411
mov ebx, esi
shr ebx, 5
add esi, 0x1f0f
sub esi, ebx
add esi, 0xffffe0f1
mov word [eax], si
cmp edx, 0xffffff
ja 0x4120ce
shl edx, 8
shl edi, 8
mov eax, dword [ebp - 0x1c]
movzx ebx, byte [eax]
inc eax
mov dword [ebp - 0x1c], eax
add ebx, edi
jmp 0x4120d0
mov ebx, edi
mov edi, ecx
mov esi, dword [ebp - 0x14]
mov ecx, edx
shr ecx, 0xb
movzx eax, word [edi + esi*2]
imul ecx, eax
cmp ebx, ecx
jae 0x412118
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], ebx
mov ecx, 0x800
sub ecx, eax
shr ecx, 5
add ecx, eax
mov word [edi + esi*2], cx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc8], 8
mov eax, 3
jmp 0x412157
mov esi, eax
shr esi, 5
sub eax, esi
mov esi, dword [ebp - 0x14]
mov word [edi + esi*2], ax
add ebx, 0x3e68c1e4
sub ebx, ecx
add ebx, 0xc1973e1c
mov dword [ebp - 0x20], ebx
add edx, 0xa9e56303
sub edx, ecx
add edx, 0x561a9cfd
mov dword [ebp - 0xc8], 0x10
mov eax, 8
mov dword [ebp - 0x28], edx
mov ebx, edi
mov dword [ebp - 0x34], eax
mov edx, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 0x2c]
neg esi
sub esi, edx
neg esi
mov ecx, dword [ebp - 0x28]
cmp ecx, 0xffffff
ja 0x4121b0
mov dword [ebp - 0x24], eax
shl ecx, 8
mov edx, dword [ebp - 0x20]
shl edx, 8
mov eax, dword [ebp - 0x1c]
movzx edi, byte [eax]
inc eax
mov dword [ebp - 0x1c], eax
add edx, edi
jmp 0x4121b6
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x20]
mov edi, ecx
shr edi, 0xb
mov eax, ebx
movzx ebx, word [eax + esi*2]
imul edi, ebx
cmp edx, edi
jae 0x4121f0
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], edx
mov edi, 0x800
sub edi, ebx
shr edi, 5
add edi, ebx
mov word [eax + esi*2], di
mov edx, dword [ebp - 0x14]
add edx, edx
jmp 0x412233
mov eax, ebx
shr eax, 5
add ebx, 0x7168
sub ebx, eax
add ebx, 0xffff8e98
mov eax, dword [ebp - 0x18]
mov word [eax + esi*2], bx
add ecx, 0x2ec341a0
sub ecx, edi
add edx, 0x6199418a
sub edx, edi
add ecx, 0xd13cbe60
add edx, 0x9e66be76
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x14]
lea edx, [edx + edx + 1]
mov dword [ebp - 0x28], ecx
mov ebx, eax
mov eax, dword [ebp - 0x24]
dec eax
jne 0x412170
mov esi, 1
mov ecx, dword [ebp - 0x34]
shl esi, cl
mov dword [ebp - 0x48], esi
lea eax, [edx + 0x1e204863]
sub eax, esi
mov ecx, dword [ebp - 0xc8]
lea eax, [eax + ecx - 0x1e204863]
cmp dword [ebp - 0x3c], 3
ja 0x412409
mov dword [ebp - 0x14], edx
cmp eax, 3
mov dword [ebp - 0x38], 0x270
mov ecx, dword [ebp - 0x28]
jg 0x41228b
mov edx, eax
shl edx, 6
add edx, 0x1b0
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x44], eax
mov eax, 6
mov esi, 1
mov edx, 0xfffffffa
nop
nop
nop
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x24], esi
mov edx, dword [ebp - 0x38]
neg edx
sub edx, esi
neg edx
cmp ecx, 0xffffff
ja 0x412300
mov dword [ebp - 0x2c], eax
shl ecx, 8
mov dword [ebp - 0x28], ecx
mov esi, dword [ebp - 0x20]
shl esi, 8
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx]
inc ecx
mov dword [ebp - 0x1c], ecx
mov edi, eax
not edi
mov ecx, ebx
mov ebx, esi
not ebx
and edi, 0x6c91a626
and eax, 0xd9
and ebx, 0x6c91a626
and esi, 0x936e5900
add eax, edi
add esi, ebx
mov ebx, ecx
xor esi, eax
mov edi, dword [ebp - 0x28]
jmp 0x412308
mov dword [ebp - 0x2c], eax
mov edi, ecx
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x20], esi
mov ecx, edi
shr ecx, 0xb
movzx ebx, word [ebx + edx*2]
imul ecx, ebx
mov eax, esi
sub eax, ecx
jae 0x412340
mov eax, 0x800
sub eax, ebx
neg ebx
shr eax, 5
sub ebx, eax
neg ebx
mov eax, dword [ebp - 0x18]
mov word [eax + edx*2], bx
mov esi, dword [ebp - 0x24]
add esi, esi
mov ebx, eax
jmp 0x412390
mov esi, ecx
mov ecx, ebx
shr ecx, 5
add ebx, 0xffffabf6
sub ebx, ecx
add ebx, 0x540a
mov ecx, dword [ebp - 0x18]
mov word [ecx + edx*2], bx
mov edx, ecx
add edi, 0xada652ad
sub edi, esi
mov esi, dword [ebp - 0x24]
add esi, esi
mov ecx, esi
not ecx
and ecx, 0xa5baadc9
and esi, 0x5a455236
add esi, ecx
add edi, 0x5259ad53
xor esi, 0xa5baadc8
mov dword [ebp - 0x20], eax
mov ecx, edi
mov ebx, edx
mov eax, dword [ebp - 0x2c]
neg eax
not eax
mov edx, dword [ebp - 0x34]
inc edx
jne 0x4122a0
lea eax, [esi - 0x40]
cmp eax, 4
jl 0x41241a
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], ecx
mov ecx, eax
sar ecx, 1
mov edi, ecx
mov ecx, eax
mov esi, ecx
xor esi, 0xfffffffe
and esi, ecx
mov eax, esi
not eax
and eax, 0x4fc4e7f7
mov edx, esi
and edx, 0xb03b1808
add edx, eax
xor edx, 0x4fc4e7f5
and esi, 2
or esi, edx
cmp ecx, 0xd
jg 0x412425
mov ecx, edi
dec ecx
mov dword [ebp - 0x2c], ecx
shl esi, cl
mov eax, 0xb0876a79
sub eax, dword [ebp - 0x24]
lea eax, [eax + esi + 0x4f789876]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x8c], esi
mov ecx, dword [ebp - 0x28]
jmp 0x412502
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x8c]
jmp 0x41264b
mov dword [ebp - 0x8c], eax
jmp 0x41262c
mov eax, 5
sub eax, edi
add edi, 0xfffffffb
mov ecx, dword [ebp - 0x28]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x2c], edx
cmp ecx, 0xffffff
mov edx, dword [ebp - 0x20]
ja 0x412490
mov dword [ebp - 0x18], ebx
shl ecx, 8
mov dword [ebp - 0x28], ecx
shl edx, 8
mov edi, dword [ebp - 0x1c]
movzx ecx, byte [edi]
inc edi
mov dword [ebp - 0x1c], edi
mov edi, ecx
not edi
mov ebx, edx
not ebx
and edi, 0xb080d729
and ecx, 0xd6
and ebx, 0xb080d729
and edx, 0x4f7f2800
add ecx, edi
add edx, ebx
xor edx, ecx
mov ecx, dword [ebp - 0x28]
jmp 0x412493
mov dword [ebp - 0x18], ebx
shr ecx, 1
add esi, esi
cmp edx, ecx
mov ebx, dword [ebp - 0x18]
jae 0x4124b0
mov dword [ebp - 0x20], edx
jmp 0x4124e0
add edx, 0xf8c0e601
sub edx, ecx
add edx, 0x73f19ff
mov dword [ebp - 0x20], edx
mov edx, esi
not edx
and edx, 0x455e4044
mov edi, esi
and edi, 0xbaa1bfbb
add edi, edx
xor edi, 0x455e4045
and esi, 1
or esi, edi
mov edx, dword [ebp - 0x2c]
dec edx
inc eax
jne 0x412440
shl esi, 4
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x34], 0x322
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x24], 1
mov edx, ecx
mov edi, 1
mov eax, dword [ebp - 0x34]
lea esi, [edi + eax + 0xd17e524]
cmp edx, 0xffffff
ja 0x412540
mov dword [ebp - 0x28], edi
shl edx, 8
mov eax, dword [ebp - 0x20]
shl eax, 8
mov ecx, dword [ebp - 0x1c]
movzx edi, byte [ecx]
inc ecx
mov dword [ebp - 0x1c], ecx
add eax, edi
jmp 0x412546
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x20]
mov ecx, edx
shr ecx, 0xb
movzx edi, word [ebx + esi*2 - 0x1a2fca48]
imul ecx, edi
cmp eax, ecx
jae 0x412580
mov dword [ebp - 0x20], eax
mov edx, 0x800
sub edx, edi
shr edx, 5
neg edi
sub edi, edx
neg edi
mov word [ebx + esi*2 - 0x1a2fca48], di
mov edi, dword [ebp - 0x28]
add edi, edi
jmp 0x412619
sub edx, ecx
mov dword [ebp - 0x38], edx
add eax, 0x1be45ce6
sub eax, ecx
mov dword [ebp - 0x18], ebx
mov ebx, edi
shr ebx, 5
add edi, 0x4cbc
sub edi, ebx
add edi, 0xffffb344
mov ebx, dword [ebp - 0x18]
mov word [ebx + esi*2 - 0x1a2fca48], di
mov edx, dword [ebp - 0x28]
add edx, edx
mov ecx, edx
not ecx
and ecx, 0x5a4252b9
and edx, 0xa5bdad46
add edx, ecx
mov esi, dword [ebp - 0x24]
mov ecx, esi
not ecx
mov edi, ecx
and edi, 0x95f36919
mov ebx, esi
and ebx, 0x6a0c96e6
add ebx, edi
mov esi, dword [ebp - 0x8c]
mov edi, esi
not edi
or ecx, edi
and edi, 0x95f36919
and esi, 0x6a0c96e6
add esi, edi
mov edi, edx
xor esi, ebx
mov ebx, dword [ebp - 0x18]
not ecx
or esi, ecx
mov dword [ebp - 0x8c], esi
add eax, 0xe41ba31a
mov dword [ebp - 0x20], eax
xor edi, 0x5a4252b8
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
add eax, eax
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x2c]
mov edx, ecx
jne 0x412510
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x3c]
neg eax
mov ecx, 7
sub ecx, eax
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x8c]
inc ecx
je 0x412c07
mov dword [ebp - 0x8c], ecx
mov eax, 1
mov edx, dword [ebp - 0xa0]
cmp ecx, edx
mov ecx, edx
ja 0x412bfc
mov eax, dword [ebp - 0x48]
lea edi, [eax - 2]
mov esi, dword [ebp - 0x30]
lea edx, [esi + 1]
mov eax, dword [ebp + 0x1c]
cmp edx, eax
jb 0x41267b
mov eax, edx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x18], ebx
sub esi, eax
sub edi, dword [ebp - 0xc8]
mov edx, dword [ebp - 0x14]
sub edi, edx
mov dword [ebp - 0x24], edi
cmp edi, esi
mov eax, edi
ja 0x412699
mov eax, esi
add dword [ebp - 0x44], 2
mov esi, dword [ebp - 0x88]
lea esi, [esi + 0x4efc7a63]
mov dword [ebp - 0x38], esi
mov esi, ecx
neg esi
mov dword [ebp - 0x2c], esi
neg edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0xc8]
mov edi, edx
not edi
and edi, 0x5f15a194
mov ebx, edx
and ebx, 0xa0ea5e6b
add ebx, edi
mov esi, dword [ebp - 0x30]
lea esi, [esi - 0x608b9bdc]
mov dword [ebp - 0x34], esi
xor ebx, 0x5f15a196
and edx, 2
or edx, ebx
mov dword [ebp - 0xc8], edx
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x4c]
cmp esi, edx
mov edi, esi
ja 0x4126fd
mov edi, edx
sub dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x14]
sub dword [ebp - 0xc8], ecx
mov esi, dword [ebp - 0x30]
mov edx, esi
sub edx, edi
mov ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x44]
mov edi, dword [ebp - 0x34]
sub edi, eax
neg eax
cmp dword [ebp - 0x24], edx
mov ebx, dword [ebp - 0x8c]
ja 0x41272b
mov dword [ebp - 0x24], edx
add dword [ebp - 0x38], 0xb103859d
neg ecx
mov dword [ebp - 0x2c], ecx
add edi, 0x608b9bdc
mov dword [ebp - 0x34], edi
sub dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x18]
lea edi, [eax + esi]
neg dword [ebp - 0x24]
mov ecx, dword [ebp - 0x9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x30], esi
lea eax, [ecx + 0x296af43b]
sub eax, ebx
lea edx, [eax - 0x296af43b]
mov esi, dword [ebp - 0x88]
cmp edx, esi
mov edx, 0
jb 0x412782
mov edx, esi
lea eax, [edx + eax - 0x296af43b]
mov edx, dword [ebp - 0x90]
mov bl, byte [edx + eax]
mov byte [edx + ecx], bl
mov eax, ecx
inc eax
cmp eax, esi
mov ecx, 0
je 0x4127a3
mov ecx, eax
mov edx, dword [ebp - 0x30]
neg edx
mov eax, 1
sub eax, edx
mov edx, ebx
mov byte [edi], dl
inc edi
dec dword [ebp - 0x24]
mov esi, eax
mov eax, ecx
mov ebx, dword [ebp - 0x8c]
jne 0x412760
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x2c]
ja 0x411200
mov ecx, dword [ebp - 0x88]
jmp 0x411200
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xbc], eax
mov esi, edi
jmp 0x41281c
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xbc], eax
mov esi, edi
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x28]
cmp ecx, 0xffffff
ja 0x41284d
mov dword [ebp - 0x8c], eax
shl ecx, 8
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x20]
shl ecx, 8
mov edi, dword [ebp - 0x1c]
movzx eax, byte [edi]
inc edi
add ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x412859
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x8c], eax
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x98]
sub ecx, edi
add ecx, edx
mov eax, 1
js 0x412bfc
test ecx, ecx
mov dword [ebp - 0x7c], ecx
mov ebx, esi
jle 0x412b7e
mov ecx, dword [ebp - 0xf0]
sub ecx, edx
mov esi, edx
mov edx, ecx
not edx
sub edx, edi
xor eax, eax
cmp edx, 0xffffffff
mov edx, esi
je 0x412b50
mov dword [ebp - 0x3c], ebx
mov esi, 0x5d0329cc
sub esi, ecx
sub esi, edi
add esi, 0xa2fcd634
mov ecx, esi
not ecx
or ecx, 0x1f
xor eax, eax
cmp ecx, 0xffffffff
je 0x412b3d
mov ecx, edx
mov dword [ebp - 0x94], edx
sub ecx, dword [ebp - 0xf0]
mov edx, ecx
neg edx
not edx
add ecx, 0xeae1f00a
sub ecx, edi
mov ebx, esi
mov esi, dword [ebp + 8]
lea ecx, [ecx + esi + 0x151e100d]
mov esi, ebx
cmp edx, dword [ebp - 0x98]
sbb dl, dl
cmp ecx, edi
sbb cl, cl
or cl, dl
and cl, 1
movzx ecx, cl
cmp ecx, 1
mov ebx, dword [ebp - 0x3c]
je 0x41290c
mov cl, 1
test cl, cl
jne 0x412b46
mov eax, esi
mov dword [ebp - 0x80], esi
and eax, 0xffffffe0
mov dword [ebp - 0x78], eax
xor esi, esi
mov ecx, 0xffffffff
mov eax, edi
mov edi, dword [ebp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x14], ecx
mov cl, byte [eax + esi]
mov byte [ebp - 0x18], cl
mov cl, byte [eax + esi + 1]
mov byte [ebp - 0x1c], cl
mov cl, byte [eax + esi + 2]
mov byte [ebp - 0x24], cl
mov cl, byte [eax + esi + 3]
mov byte [ebp - 0x2c], cl
mov cl, byte [eax + esi + 4]
mov byte [ebp - 0x34], cl
mov cl, byte [eax + esi + 5]
mov byte [ebp - 0x38], cl
mov cl, byte [eax + esi + 6]
mov byte [ebp - 0x44], cl
mov cl, byte [eax + esi + 7]
mov byte [ebp - 0x48], cl
mov dword [ebp - 0x4c], esi
mov ebx, esi
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x60], ecx
mov ecx, esi
mov dl, byte [eax + esi + 8]
mov byte [ebp - 0x6b], dl
mov dl, byte [eax + esi + 9]
mov byte [ebp - 0x6c], dl
mov dl, byte [eax + esi + 0xa]
mov byte [ebp - 0x6e], dl
mov dl, byte [eax + esi + 0xb]
mov byte [ebp - 0x6f], dl
mov dl, byte [eax + esi + 0xc]
mov byte [ebp - 0x70], dl
mov dl, byte [eax + esi + 0xd]
mov byte [ebp - 0x71], dl
mov dl, byte [eax + esi + 0xe]
mov byte [ebp - 0x72], dl
mov edx, dword [ebp - 0x4c]
and edx, 0x10
xor ebx, 0x10
or ebx, edx
mov dl, byte [eax + ebx]
mov byte [ebp - 0x4c], dl
mov dl, byte [eax + ebx + 1]
mov byte [ebp - 0x50], dl
mov dl, byte [eax + ebx + 2]
mov byte [ebp - 0x51], dl
mov dl, byte [eax + ebx + 3]
mov byte [ebp - 0x52], dl
mov dl, byte [eax + ebx + 4]
mov byte [ebp - 0x53], dl
mov dl, byte [eax + ebx + 5]
mov byte [ebp - 0x58], dl
mov dl, byte [eax + ebx + 6]
mov byte [ebp - 0x59], dl
mov dl, byte [eax + ebx + 7]
mov byte [ebp - 0x61], dl
mov dl, byte [eax + ebx + 8]
mov byte [ebp - 0x62], dl
mov dl, byte [eax + ebx + 9]
mov byte [ebp - 0x63], dl
mov dl, byte [eax + ebx + 0xa]
mov byte [ebp - 0x64], dl
mov dl, byte [eax + ebx + 0xb]
mov byte [ebp - 0x68], dl
mov dl, byte [eax + ebx + 0xc]
mov byte [ebp - 0x69], dl
mov dl, byte [eax + ebx + 0xd]
mov byte [ebp - 0x6a], dl
mov dl, byte [eax + ebx + 0xe]
mov byte [ebp - 0x6d], dl
mov bl, byte [eax + ebx + 0xf]
mov bh, byte [eax + esi + 0xf]
mov byte [edi + esi + 0x27], bh
mov dl, byte [ebp - 0x72]
mov byte [edi + esi + 0x26], dl
mov dl, byte [ebp - 0x71]
mov byte [edi + esi + 0x25], dl
mov dl, byte [ebp - 0x70]
mov byte [edi + esi + 0x24], dl
mov dl, byte [ebp - 0x6f]
mov byte [edi + esi + 0x23], dl
mov dl, byte [ebp - 0x6e]
mov byte [edi + esi + 0x22], dl
mov dl, byte [ebp - 0x6c]
mov byte [edi + esi + 0x21], dl
mov dl, byte [ebp - 0x6b]
mov byte [edi + esi + 0x20], dl
mov bh, byte [ebp - 0x48]
mov byte [edi + esi + 0x1f], bh
mov bh, byte [ebp - 0x44]
mov byte [edi + esi + 0x1e], bh
mov bh, byte [ebp - 0x38]
mov byte [edi + esi + 0x1d], bh
mov bh, byte [ebp - 0x34]
mov byte [edi + esi + 0x1c], bh
mov bh, byte [ebp - 0x2c]
mov byte [edi + esi + 0x1b], bh
mov bh, byte [ebp - 0x24]
mov byte [edi + esi + 0x1a], bh
mov bh, byte [ebp - 0x1c]
mov byte [edi + esi + 0x19], bh
mov bh, byte [ebp - 0x18]
mov byte [edi + esi + 0x18], bh
mov edx, dword [ebp - 0x60]
and edx, 0xac5739e4
and ecx, 0x53a8c61b
add ecx, edx
mov edx, dword [ebp - 0x14]
not edx
xor ecx, 0xac5739f4
and edx, 0x10
or edx, ecx
mov byte [edi + edx + 0x27], bl
mov cl, byte [ebp - 0x6d]
mov byte [edi + edx + 0x26], cl
mov cl, byte [ebp - 0x6a]
mov byte [edi + edx + 0x25], cl
mov cl, byte [ebp - 0x69]
mov byte [edi + edx + 0x24], cl
mov cl, byte [ebp - 0x68]
mov byte [edi + edx + 0x23], cl
mov cl, byte [ebp - 0x64]
mov byte [edi + edx + 0x22], cl
mov cl, byte [ebp - 0x63]
mov byte [edi + edx + 0x21], cl
mov cl, byte [ebp - 0x62]
mov byte [edi + edx + 0x20], cl
mov cl, byte [ebp - 0x61]
mov byte [edi + edx + 0x1f], cl
mov cl, byte [ebp - 0x59]
mov byte [edi + edx + 0x1e], cl
mov cl, byte [ebp - 0x58]
mov byte [edi + edx + 0x1d], cl
mov cl, byte [ebp - 0x53]
mov byte [edi + edx + 0x1c], cl
mov cl, byte [ebp - 0x52]
mov byte [edi + edx + 0x1b], cl
mov cl, byte [ebp - 0x51]
mov byte [edi + edx + 0x1a], cl
mov cl, byte [ebp - 0x50]
mov byte [edi + edx + 0x19], cl
mov cl, byte [ebp - 0x4c]
mov byte [edi + edx + 0x18], cl
mov ecx, dword [ebp - 0x14]
add esi, 0x20
add ecx, 0xffffffe0
cmp dword [ebp - 0x78], esi
jne 0x412930
mov edi, eax
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x80]
jmp 0x412b46
mov dword [ebp - 0x94], edx
mov ebx, dword [ebp - 0x3c]
cmp esi, eax
mov edx, dword [ebp - 0x94]
je 0x412b7e
add edx, dword [ebp - 0x98]
sub edx, eax
sub edx, edi
mov ecx, dword [ebp + 8]
lea ecx, [eax + ecx + 0x18]
add edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
mov dl, byte [edi]
mov byte [ecx], dl
mov edx, esi
inc eax
inc ecx
inc edi
dec edx
jne 0x412b70
mov eax, dword [ebp + 8]
mov ecx, eax
mov eax, dword [ebp - 0x7c]
mov dword [ecx + 0x58], eax
mov eax, dword [ebp - 0x28]
mov dword [ecx + 0x5c], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 0x60], eax
mov eax, dword [ebp - 0x9c]
mov dword [ecx + 0x64], eax
mov eax, dword [ebp - 0xac]
neg eax
mov edx, dword [ebp - 0x30]
sub eax, edx
neg eax
mov dword [ecx + 0x68], eax
mov eax, dword [ebp - 0xa0]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 0x70], eax
mov eax, dword [ebp - 0x40]
mov dword [ecx + 0x74], eax
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x78], eax
mov eax, dword [ebp - 0xe0]
mov dword [ecx + 0x7c], eax
mov dword [ecx + 0x80], ebx
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x84], eax
mov al, byte [ebp - 0x10]
mov byte [ecx + 0x88], al
mov eax, dword [ebp + 0x20]
mov dword [eax], edx
xor eax, eax
add esp, 0xf4
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0xc8], 0xffffffff
xor eax, eax
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x3c]
jmp 0x412825