Function at 0x406f20
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2a0
mov esi, ecx
test edx, edx
je 0x4073cd
lea eax, [esi + 0x8f12]
push 0x90
push 8
push eax
call fcn.00408be0
add esp, 0xc
lea eax, [esi + 0x8fa2]
push 0x70
push 9
push eax
call fcn.00408be0
add esp, 0xc
mov dword [esi + 0x9012], 0x7070707
mov dword [esi + 0x9016], 0x7070707
mov dword [esi + 0x901a], 0x7070707
mov dword [esi + 0x901e], 0x7070707
mov dword [esi + 0x9022], 0x7070707
mov dword [esi + 0x9026], 0x7070707
mov dword [esi + 0x902e], 0x8080808
mov dword [esi + 0x902a], 0x8080808
mov dword [esi + 0x9032], 0x5050505
mov dword [esi + 0x9036], 0x5050505
mov dword [esi + 0x903a], 0x5050505
mov dword [esi + 0x903e], 0x5050505
mov dword [esi + 0x9042], 0x5050505
mov dword [esi + 0x9046], 0x5050505
mov dword [esi + 0x904a], 0x5050505
mov dword [esi + 0x904e], 0x5050505
lea eax, [esp + 0x160]
push 0x84
push 0
push eax
call fcn.00408be0
add esp, 0xc
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x8f12]
inc dword [esp + ecx*4 + 0x160]
movzx ecx, byte [esi + eax + 0x8f13]
inc dword [esp + ecx*4 + 0x160]
movzx ecx, byte [esi + eax + 0x8f14]
inc dword [esp + ecx*4 + 0x160]
movzx ecx, byte [esi + eax + 0x8f15]
inc dword [esp + ecx*4 + 0x160]
add eax, 4
cmp eax, 0x120
jne 0x407020
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x164]
add eax, eax
mov dword [esp + 0x28], eax
add eax, dword [esp + 0x168]
add eax, eax
mov dword [esp + 0x2c], eax
add eax, dword [esp + 0x16c]
add eax, eax
mov dword [esp + 0x30], eax
add eax, dword [esp + 0x170]
add eax, eax
mov dword [esp + 0x34], eax
add eax, dword [esp + 0x174]
add eax, eax
mov dword [esp + 0x38], eax
add eax, dword [esp + 0x178]
add eax, eax
mov dword [esp + 0x3c], eax
add eax, dword [esp + 0x17c]
add eax, eax
mov dword [esp + 0x40], eax
add eax, dword [esp + 0x180]
add eax, eax
mov dword [esp + 0x44], eax
add eax, dword [esp + 0x184]
add eax, eax
mov dword [esp + 0x48], eax
add eax, dword [esp + 0x188]
add eax, eax
mov dword [esp + 0x4c], eax
add eax, dword [esp + 0x18c]
add eax, eax
mov dword [esp + 0x50], eax
add eax, dword [esp + 0x190]
add eax, eax
mov dword [esp + 0x54], eax
add eax, dword [esp + 0x194]
add eax, eax
mov dword [esp + 0x58], eax
add eax, dword [esp + 0x198]
add eax, eax
mov dword [esp + 0x5c], eax
xor eax, eax
jmp 0x407140
mov word [esi + eax*2 + 0x8852], bx
inc eax
cmp eax, 0x120
je 0x4071b9
movzx ecx, byte [esi + eax + 0x8f12]
test ecx, ecx
je 0x407138
mov edx, dword [esp + ecx*4 + 0x20]
mov dword [esp], ecx
lea ecx, [edx + 1]
mov edi, dword [esp]
mov dword [esp + edi*4 + 0x20], ecx
mov ecx, dword [esp]
xor ebx, ebx
cmp cl, 1
je 0x4071a0
mov ebp, ecx
and ebp, 0xfffffffe
xor edi, edi
nop
nop
mov ebx, edx
xor ebx, 0x7ffffffe
mov ecx, edx
or ecx, 1
and ecx, ebx
mov ebx, edx
shr ebx, 1
shl edi, 2
add ecx, ecx
or ecx, edi
mov edi, ebx
xor edi, 0xfffffffe
or ebx, 1
and ebx, edi
or ebx, ecx
shr edx, 2
mov edi, ebx
add ebp, 0xfffffffe
jne 0x407170
test byte [esp], 1
je 0x407130
add ebx, ebx
mov ecx, edx
xor ecx, 0xfffffffe
or edx, 1
and edx, ecx
or ebx, edx
jmp 0x407130
push 0x84
push 0
lea eax, [esp + 0x168]
push eax
call fcn.00408be0
add esp, 0xc
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x9032]
inc dword [esp + ecx*4 + 0x160]
movzx ecx, byte [esi + eax + 0x9033]
inc dword [esp + ecx*4 + 0x160]
movzx ecx, byte [esi + eax + 0x9034]
inc dword [esp + ecx*4 + 0x160]
movzx ecx, byte [esi + eax + 0x9035]
inc dword [esp + ecx*4 + 0x160]
add eax, 4
cmp eax, 0x20
jne 0x4071e0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x164]
add eax, eax
mov dword [esp + 0x28], eax
add eax, dword [esp + 0x168]
add eax, eax
mov dword [esp + 0x2c], eax
add eax, dword [esp + 0x16c]
add eax, eax
mov dword [esp + 0x30], eax
add eax, dword [esp + 0x170]
add eax, eax
mov dword [esp + 0x34], eax
add eax, dword [esp + 0x174]
add eax, eax
mov dword [esp + 0x38], eax
add eax, dword [esp + 0x178]
add eax, eax
mov dword [esp + 0x3c], eax
add eax, dword [esp + 0x17c]
add eax, eax
mov dword [esp + 0x40], eax
add eax, dword [esp + 0x180]
add eax, eax
mov dword [esp + 0x44], eax
add eax, dword [esp + 0x184]
add eax, eax
mov dword [esp + 0x48], eax
add eax, dword [esp + 0x188]
add eax, eax
mov dword [esp + 0x4c], eax
add eax, dword [esp + 0x18c]
add eax, eax
mov dword [esp + 0x50], eax
add eax, dword [esp + 0x190]
add eax, eax
mov dword [esp + 0x54], eax
add eax, dword [esp + 0x194]
add eax, eax
mov dword [esp + 0x58], eax
add eax, dword [esp + 0x198]
add eax, eax
mov dword [esp + 0x5c], eax
xor eax, eax
jmp 0x4072fe
mov word [esi + eax*2 + 0x8a92], di
inc eax
cmp eax, 0x20
je 0x407379
movzx ebx, byte [esi + eax + 0x9032]
test ebx, ebx
je 0x4072f8
mov edx, dword [esp + ebx*4 + 0x20]
lea ecx, [edx + 1]
mov dword [esp + ebx*4 + 0x20], ecx
xor edi, edi
cmp bl, 1
mov dword [esp], ebx
je 0x407360
and ebx, 0xfffffffe
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
xor edi, 0x7ffffffe
mov ecx, edx
or ecx, 1
and ecx, edi
mov edi, edx
shr edi, 1
shl ebp, 2
add ecx, ecx
or ecx, ebp
mov ebp, edi
xor ebp, 0xfffffffe
or edi, 1
and edi, ebp
or edi, ecx
shr edx, 2
mov ebp, edi
add ebx, 0xfffffffe
jne 0x407330
test byte [esp], 1
je 0x4072f0
add edi, edi
mov ecx, edx
xor ecx, 0xfffffffe
or edx, 1
and edx, ecx
or edi, edx
jmp 0x4072f0
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
bts ebx, eax
mov dword [esi + 0x48], ebx
add eax, 2
mov dword [esi + 0x44], eax
cmp eax, 8
jae 0x4073b5
jmp 0x407d19
shr ebx, 8
mov dword [esi + 0x48], ebx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x407d19
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x4073a0
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov byte [ecx], bl
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x4073a0
mov word [esi + 0x8392], 1
mov ecx, esi
xor edx, edx
push 0
push 0xf
push 0x120
call fcn.00408000
add esp, 0xc
mov ecx, esi
mov edx, 1
push 0
push 0xf
push 0x20
call fcn.00408000
add esp, 0xc
mov eax, 0x11e
cmp byte [esi + 0x902f], 0
jne 0x4075e3
mov eax, 0x11d
cmp byte [esi + 0x902e], 0
jne 0x4075e3
mov eax, 0x11c
cmp byte [esi + 0x902d], 0
jne 0x4075e3
mov eax, 0x11b
cmp byte [esi + 0x902c], 0
jne 0x4075e3
mov eax, 0x11a
cmp byte [esi + 0x902b], 0
jne 0x4075e3
mov eax, 0x119
cmp byte [esi + 0x902a], 0
jne 0x4075e3
mov eax, 0x118
cmp byte [esi + 0x9029], 0
jne 0x4075e3
mov eax, 0x117
cmp byte [esi + 0x9028], 0
jne 0x4075e3
mov eax, 0x116
cmp byte [esi + 0x9027], 0
jne 0x4075e3
mov eax, 0x115
cmp byte [esi + 0x9026], 0
jne 0x4075e3
mov eax, 0x114
cmp byte [esi + 0x9025], 0
jne 0x4075e3
mov eax, 0x113
cmp byte [esi + 0x9024], 0
jne 0x4075e3
mov eax, 0x112
cmp byte [esi + 0x9023], 0
jne 0x4075e3
mov eax, 0x111
cmp byte [esi + 0x9022], 0
jne 0x4075e3
mov eax, 0x110
cmp byte [esi + 0x9021], 0
jne 0x4075e3
mov eax, 0x10f
cmp byte [esi + 0x9020], 0
jne 0x4075e3
mov eax, 0x10e
cmp byte [esi + 0x901f], 0
jne 0x4075e3
mov eax, 0x10d
cmp byte [esi + 0x901e], 0
jne 0x4075e3
mov eax, 0x10c
cmp byte [esi + 0x901d], 0
jne 0x4075e3
mov eax, 0x10b
cmp byte [esi + 0x901c], 0
jne 0x4075e3
mov eax, 0x10a
cmp byte [esi + 0x901b], 0
jne 0x4075e3
mov eax, 0x109
cmp byte [esi + 0x901a], 0
jne 0x4075e3
mov eax, 0x108
cmp byte [esi + 0x9019], 0
jne 0x4075e3
mov eax, 0x107
cmp byte [esi + 0x9018], 0
jne 0x4075e3
mov eax, 0x106
cmp byte [esi + 0x9017], 0
jne 0x4075e3
mov eax, 0x105
cmp byte [esi + 0x9016], 0
jne 0x4075e3
mov eax, 0x104
cmp byte [esi + 0x9015], 0
jne 0x4075e3
mov eax, 0x103
cmp byte [esi + 0x9014], 0
jne 0x4075e3
cmp byte [esi + 0x9013], 1
mov eax, 0x102
sbb eax, 0
mov dword [esp + 0x10], eax
lea eax, [esi + 0x8f12]
mov ecx, 0x904f
mov edx, 0x3a
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ebp, [ecx - 0x9031]
cmp byte [esi + ecx], 0
jne 0x40763a
cmp ebp, 3
jb 0x407635
lea ebp, [ecx - 0x9032]
mov edi, ebp
xor edi, 0xfffffffe
mov ebx, edx
and ebx, 0xfffffffc
add ebx, edi
cmp byte [esi + ebx + 0x9033], 0
jne 0x40763a
add ecx, 0xfffffffe
add edx, 0xfffffffc
jmp 0x407600
mov ebp, 1
lea ecx, [esp + 0x160]
mov edi, dword [esp + 0x10]
push edi
push eax
push ecx
call fcn.00408a80
add esp, 0xc
lea eax, [esp + edi]
add eax, 0x160
lea ecx, [esi + 0x9032]
push ebp
push ecx
push eax
call fcn.00408a80
add esp, 0xc
mov dword [esp + 0x14], ebp
mov edx, ebp
mov dword [esi + 0x8612], 0
mov dword [esi + 0x8616], 0
mov dword [esi + 0x861a], 0
mov dword [esi + 0x861e], 0
mov dword [esi + 0x8622], 0
mov dword [esi + 0x8626], 0
mov dword [esi + 0x862a], 0
mov dword [esi + 0x862e], 0
mov dword [esi + 0x8632], 0
mov word [esi + 0x8636], 0
add edx, edi
je 0x407900
lea eax, [esi + 0x8612]
mov dword [esp + 0x18], eax
mov cl, 0xff
xor eax, eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp], 0
mov dword [esp + 0xc], edx
jmp 0x40772e
inc word [esi + 0x8632]
mov byte [esp + eax + 0x20], 0x10
add bl, 0xfd
mov byte [esp + eax + 0x21], bl
add eax, 2
mov ebx, edi
inc ebx
mov dword [esp], 0
cmp ebx, 0x8a
je 0x4077ed
inc ebp
cmp edx, ebp
je 0x4078dc
mov byte [esp + 8], cl
movzx ecx, byte [esp + ebp + 0x160]
test ecx, ecx
je 0x407780
test ebx, ebx
je 0x4077d0
cmp ebx, 2
ja 0x4077d4
mov edi, eax
mov eax, dword [esp + 0x18]
add word [eax], bx
lea eax, [esp + edi]
add eax, 0x20
push ebx
push 0
push eax
mov dword [esp + 0x10], ecx
call fcn.00408be0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
add esp, 0xc
add ebx, edi
mov edi, ebx
jmp 0x407816
mov edi, ebx
mov ebx, dword [esp]
test ebx, ebx
je 0x40770f
cmp ebx, 2
ja 0x4076f9
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 8]
add word [esi + eax*2 + 0x8612], bx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
add ecx, esp
add ecx, 0x20
push ebx
push eax
push ecx
call fcn.00408be0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
add esp, 0xc
add eax, ebx
jmp 0x40770f
mov edi, eax
jmp 0x407816
lea edi, [eax + 2]
cmp ebx, 0xa
ja 0x407803
inc word [esi + 0x8634]
mov byte [esp + eax + 0x20], 0x11
add bl, 0xfd
jmp 0x407812
inc word [esi + 0x8636]
mov word [esp + eax + 0x20], 0x7f12
add eax, 2
jmp 0x4078ce
inc word [esi + 0x8636]
mov byte [esp + eax + 0x20], 0x12
add bl, 0xf5
mov byte [esp + eax + 0x21], bl
movzx eax, byte [esp + 8]
cmp cl, al
mov ebx, dword [esp]
jne 0x407840
lea eax, [ebx + 1]
cmp eax, 6
je 0x407875
mov dword [esp], eax
mov eax, edi
xor ebx, ebx
jmp 0x407725
test ebx, ebx
je 0x4078b1
cmp ebx, 2
ja 0x40789b
movzx eax, al
add word [esi + eax*2 + 0x8612], bx
mov dword [esp + 4], ecx
lea ecx, [esp + edi]
add ecx, 0x20
push ebx
push eax
push ecx
call fcn.00408be0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
add esp, 0xc
add edi, ebx
jmp 0x4078b1
inc word [esi + 0x8632]
mov byte [esp + edi + 0x20], 0x10
add bl, 0xfe
mov byte [esp + edi + 0x21], bl
add edi, 2
mov dword [esp], 0
xor ebx, ebx
mov eax, edi
jmp 0x407725
inc word [esi + 0x8632]
mov byte [esp + edi + 0x20], 0x10
add bl, 0xfd
mov byte [esp + edi + 0x21], bl
add edi, 2
inc word [esi + ecx*2 + 0x8612]
mov eax, edi
and eax, 1
mov ebx, ecx
mov ecx, edi
xor ecx, 1
lea eax, [ecx + eax*2]
mov ecx, ebx
mov byte [esp + edi + 0x20], cl
mov dword [esp], 0
xor ebx, ebx
jmp 0x407725
mov edx, ebx
mov ebx, dword [esp]
test ebx, ebx
je 0x40790c
cmp ebx, 2
ja 0x407939
add word [esi + ecx*2 + 0x8612], bx
mov edi, eax
add eax, esp
add eax, 0x20
movzx ecx, cl
push ebx
push ecx
jmp 0x407929
mov dword [esp], 0
jmp 0x407998
test edx, edx
je 0x407962
mov ebx, edx
cmp edx, 2
ja 0x407967
mov edi, eax
mov eax, dword [esp + 0x18]
add word [eax], bx
lea eax, [esp + edi]
add eax, 0x20
push ebx
push 0
push eax
call fcn.00408be0
add esp, 0xc
add edi, ebx
mov dword [esp], edi
jmp 0x407998
inc word [esi + 0x8632]
mov byte [esp + eax + 0x20], 0x10
mov ecx, eax
mov eax, ebx
xor eax, 0xfc
and ebx, 0x7c
lea eax, [eax + ebx*2]
inc al
mov byte [esp + ecx + 0x21], al
add ecx, 2
mov dword [esp], ecx
jmp 0x407998
mov dword [esp], eax
jmp 0x407998
mov ecx, eax
add eax, 2
mov dword [esp], eax
cmp ebx, 0xa
ja 0x407985
inc word [esi + 0x8634]
mov byte [esp + ecx + 0x20], 0x11
add bl, 0xfd
jmp 0x407994
inc word [esi + 0x8636]
mov byte [esp + ecx + 0x20], 0x12
add bl, 0xf5
mov byte [esp + ecx + 0x21], bl
mov ebx, 2
mov ecx, esi
mov edx, 2
push 0
push 7
push 0x13
call fcn.00408000
add esp, 0xc
mov ecx, dword [esi + 0x44]
shl ebx, cl
or ebx, dword [esi + 0x48]
mov dword [esi + 0x48], ebx
add ecx, 2
mov dword [esi + 0x44], ecx
cmp ecx, 8
jb 0x4079f9
mov edx, dword [esp + 0x10]
jmp 0x4079e1
shr ebx, 8
mov dword [esi + 0x48], ebx
add ecx, 0xfffffff8
mov dword [esi + 0x44], ecx
cmp ecx, 7
jbe 0x4079fd
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x4079d0
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], bl
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x4079d0
mov edx, dword [esp + 0x10]
add edx, 0xfffffeff
shl edx, cl
or edx, ebx
mov dword [esi + 0x48], edx
lea eax, [ecx + 5]
mov dword [esi + 0x44], eax
cmp ecx, 3
jb 0x407a49
mov ebx, dword [esp + 0x14]
jmp 0x407a31
shr edx, 8
mov dword [esi + 0x48], edx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x407a4d
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x407a20
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov byte [ecx], dl
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
jmp 0x407a20
mov ebx, dword [esp + 0x14]
dec ebx
mov ecx, eax
shl ebx, cl
or ebx, edx
mov dword [esi + 0x48], ebx
lea ecx, [eax + 5]
mov dword [esi + 0x44], ecx
cmp eax, 3
jae 0x407bf5
mov eax, ebx
mov edx, 0x13
cmp byte [esi + 0x9161], 0
jne 0x407b4f
mov edx, 0x12
cmp byte [esi + 0x9153], 0
jne 0x407b4f
mov edx, 0x11
cmp byte [esi + 0x9160], 0
jne 0x407b4f
mov edx, 0x10
cmp byte [esi + 0x9154], 0
jne 0x407b4f
mov edx, 0xf
cmp byte [esi + 0x915f], 0
jne 0x407b4f
mov edx, 0xe
cmp byte [esi + 0x9155], 0
jne 0x407b4f
mov edx, 0xd
cmp byte [esi + 0x915e], 0
jne 0x407b4f
mov edx, 0xc
cmp byte [esi + 0x9156], 0
jne 0x407b4f
mov edx, 0xb
cmp byte [esi + 0x915d], 0
jne 0x407b4f
mov edx, 0xa
cmp byte [esi + 0x9157], 0
jne 0x407b4f
mov edx, 9
cmp byte [esi + 0x915c], 0
jne 0x407b4f
mov edx, 8
cmp byte [esi + 0x9158], 0
jne 0x407b4f
mov edx, 7
cmp byte [esi + 0x915b], 0
jne 0x407b4f
mov edx, 6
cmp byte [esi + 0x9159], 0
jne 0x407b4f
xor edx, edx
cmp byte [esi + 0x915a], 0
sete dl
xor edx, 5
lea ebx, [edx - 4]
shl ebx, cl
or ebx, eax
mov dword [esi + 0x48], ebx
lea eax, [ecx + 4]
mov dword [esi + 0x44], eax
cmp ecx, 4
jae 0x407c25
xor edi, edi
jmp 0x407b79
inc edi
cmp edi, edx
je 0x407c3d
mov ebp, ebx
movzx ecx, byte [edi + 0x43dff6]
movzx ebx, byte [esi + ecx + 0x9152]
mov ecx, eax
shl ebx, cl
or ebx, ebp
mov dword [esi + 0x48], ebx
mov ecx, eax
and ecx, 3
xor eax, 3
lea eax, [eax + ecx*2]
mov dword [esi + 0x44], eax
cmp eax, 8
jae 0x407bc1
jmp 0x407b70
shr ebx, 8
mov dword [esi + 0x48], ebx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x407b70
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x407bb0
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov byte [ecx], bl
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407bb0
shr ebx, 8
mov dword [esi + 0x48], ebx
add ecx, 0xfffffff8
mov dword [esi + 0x44], ecx
cmp ecx, 7
jbe 0x407a66
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x407be0
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], bl
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407be0
shr ebx, 8
mov dword [esi + 0x48], ebx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x407b68
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x407c10
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov byte [ecx], bl
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407c10
cmp dword [esp], 0
je 0x407d19
xor edi, edi
jmp 0x407c5a
inc edi
cmp edi, dword [esp]
jae 0x407d19
mov ecx, eax
mov edx, ebx
movzx eax, byte [esp + edi + 0x20]
movzx ebx, word [esi + eax*2 + 0x8cd2]
mov ebp, eax
movzx eax, byte [esi + eax + 0x9152]
add eax, ecx
shl ebx, cl
or ebx, edx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], eax
cmp eax, 8
jae 0x407cd1
mov ecx, ebp
cmp cl, 0x10
jb 0x407c50
movzx edx, byte [esp + edi + 0x21]
add edi, 2
movsx ebp, byte [ecx + 0x43f6db]
mov ecx, eax
shl edx, cl
or edx, ebx
mov dword [esi + 0x48], edx
add ebp, eax
mov dword [esi + 0x44], ebp
cmp ebp, 8
jae 0x407d01
mov ebx, edx
mov eax, ebp
cmp edi, dword [esp]
jb 0x407c5a
jmp 0x407d19
shr ebx, 8
mov dword [esi + 0x48], ebx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x407c86
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x407cc0
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov byte [ecx], bl
mov eax, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407cc0
shr edx, 8
mov dword [esi + 0x48], edx
add ebp, 0xfffffff8
mov dword [esi + 0x44], ebp
cmp ebp, 7
jbe 0x407caf
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x407cf0
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], dl
mov ebp, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
jmp 0x407cf0
lea edi, [esi + 0x9272]
cmp edi, dword [esi + 0x28]
jae 0x407f7d
mov ecx, 1
jmp 0x407d40
mov ecx, dword [esp]
shr ecx, 1
mov eax, edx
cmp edi, dword [esi + 0x28]
jae 0x407f7f
cmp ecx, 1
jne 0x407d4f
movzx ecx, byte [edi]
inc edi
or ecx, 0x100
mov dword [esp], ecx
test cl, 1
jne 0x407dc0
movzx ecx, byte [edi]
inc edi
mov ebp, edi
movzx edx, byte [esi + ecx + 0x8f12]
movzx edi, word [esi + ecx*2 + 0x8852]
mov ecx, eax
shl edi, cl
or ebx, edi
mov dword [esi + 0x48], ebx
add edx, eax
mov dword [esi + 0x44], edx
mov edi, ebp
cmp edx, 8
jae 0x407da1
jmp 0x407d30
shr ebx, 8
mov dword [esi + 0x48], ebx
add edx, 0xfffffff8
mov dword [esi + 0x44], edx
cmp edx, 7
jbe 0x407d30
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x407d90
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], bl
mov edx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407d90
movzx ecx, byte [edi]
mov dword [esp + 8], ecx
movzx ecx, word [ecx + ecx + 0x43ddf6]
movzx ebp, word [esi + ecx*2 + 0x8852]
movzx edx, byte [esi + ecx + 0x8f12]
add edx, eax
mov ecx, eax
shl ebp, cl
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
or ebx, ebp
mov ebp, eax
shl ebp, 8
mov dword [esi + 0x48], ebx
mov dword [esi + 0x44], edx
cmp edx, 8
mov dword [esp + 0xc], eax
jae 0x407e61
mov dword [esp + 4], edi
or ebp, ecx
mov edi, dword [esp + 8]
movzx eax, byte [edi + 0x43e050]
and edi, dword [eax*4 + 0x43e00c]
mov ecx, edx
shl edi, cl
or edi, ebx
mov ebx, edi
mov dword [esi + 0x48], edi
add edx, eax
mov dword [esi + 0x44], edx
cmp edx, 8
jae 0x407e91
mov dword [esp + 8], ebx
cmp ebp, 0x200
jb 0x407eb0
mov eax, dword [esp + 0xc]
lea ecx, [eax + 0x43dd76]
lea ebx, [eax + 0x43e350]
jmp 0x407ebc
shr ebx, 8
mov dword [esi + 0x48], ebx
add edx, 0xfffffff8
mov dword [esi + 0x44], edx
cmp edx, 7
jbe 0x407e03
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x407e50
lea edx, [eax + 1]
mov dword [esi + 0x30], edx
mov byte [eax], bl
mov edx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407e50
shr ebx, 8
mov dword [esi + 0x48], ebx
add edx, 0xfffffff8
mov dword [esi + 0x44], edx
cmp edx, 7
jbe 0x407e30
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x407e80
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], bl
mov edx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407e80
lea ecx, [ebp + 0x43db76]
lea ebx, [ebp + 0x43e150]
movzx edi, byte [ecx]
movzx eax, word [esi + edi*2 + 0x8a92]
mov ecx, edx
shl eax, cl
or eax, dword [esp + 8]
movzx ecx, byte [esi + edi + 0x9032]
add ecx, edx
movzx edx, byte [ebx]
mov dword [esi + 0x48], eax
mov dword [esi + 0x44], ecx
cmp ecx, 8
jb 0x407f20
mov edi, dword [esp + 4]
jmp 0x407f01
shr eax, 8
mov dword [esi + 0x48], eax
add ecx, 0xfffffff8
mov dword [esi + 0x44], ecx
cmp ecx, 7
jbe 0x407f24
mov ebx, dword [esi + 0x30]
cmp ebx, dword [esi + 0x34]
jae 0x407ef0
lea ecx, [ebx + 1]
mov dword [esi + 0x30], ecx
mov byte [ebx], al
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x48]
jmp 0x407ef0
mov edi, dword [esp + 4]
add edi, 3
and ebp, dword [edx*4 + 0x43e00c]
shl ebp, cl
mov ebx, ebp
or ebx, eax
mov dword [esi + 0x48], ebx
mov eax, ecx
and eax, edx
xor ecx, edx
lea edx, [ecx + eax*2]
mov dword [esi + 0x44], edx
cmp edx, 8
jae 0x407f65
jmp 0x407d30
shr ebx, 8
mov dword [esi + 0x48], ebx
add edx, 0xfffffff8
mov dword [esi + 0x44], edx
cmp edx, 7
jbe 0x407d30
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x407f50
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], bl
mov edx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407f50
mov edx, eax
movzx eax, word [esi + 0x8a52]
movzx edi, byte [esi + 0x9012]
mov ecx, edx
shl eax, cl
or eax, ebx
mov dword [esi + 0x48], eax
add edi, edx
mov dword [esi + 0x44], edi
cmp edi, 8
jae 0x407fd9
mov ecx, dword [esi + 0x30]
xor eax, eax
cmp ecx, dword [esi + 0x34]
setb al
add esp, 0x2a0
pop esi
pop edi
pop ebx
pop ebp
ret
shr eax, 8
mov dword [esi + 0x48], eax
mov ecx, edi
or ecx, 0xfffffff7
and edi, 0xfffffff7
add edi, ecx
inc edi
mov dword [esi + 0x44], edi
cmp edi, 7
jbe 0x407fa0
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x407fc0
lea edx, [ecx + 1]
mov dword [esi + 0x30], edx
mov byte [ecx], al
mov edi, dword [esi + 0x44]
mov eax, dword [esi + 0x48]
jmp 0x407fc0