Function at 0x407500
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x29c
mov esi, ecx
test edx, edx
je 0x40793f
lea eax, [esi + 0x8f12]
push 0x90
push 8
push eax
call fcn.004090e0
add esp, 0xc
lea eax, [esi + 0x8fa2]
push 0x70
push 9
push eax
call fcn.004090e0
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 + 0x15c]
push 0x84
push 0
push eax
call fcn.004090e0
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 + 0x15c]
movzx ecx, byte [esi + eax + 0x8f13]
inc dword [esp + ecx*4 + 0x15c]
movzx ecx, byte [esi + eax + 0x8f14]
inc dword [esp + ecx*4 + 0x15c]
movzx ecx, byte [esi + eax + 0x8f15]
inc dword [esp + ecx*4 + 0x15c]
add eax, 4
cmp eax, 0x120
jne 0x407600
mov dword [esp + 0x20], 0
mov eax, 2
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
or edx, 0x3ffffffe
mov ebx, eax
and ebx, 0x3ffffffe
add ebx, edx
add ecx, dword [esp + ebx*4 + 0x160]
add ecx, ecx
mov dword [esp + eax*4 + 0x1c], ecx
mov edx, eax
and edx, 1
xor eax, 1
lea edx, [eax + edx*2]
mov ebx, eax
or ebx, 0x3ffffffe
mov ebp, edx
and ebp, 0x3ffffffe
add ebp, ebx
add ecx, dword [esp + ebp*4 + 0x160]
add ecx, ecx
mov dword [esp + edx*4 + 0x1c], ecx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
cmp eax, 0x10
jl 0x407660
xor eax, eax
jmp 0x4076d4
mov word [esi + eax*2 + 0x8852], bx
inc eax
cmp eax, 0x120
je 0x407762
movzx edx, byte [esi + eax + 0x8f12]
test edx, edx
je 0x4076c8
mov edi, dword [esp + edx*4 + 0x1c]
mov ebx, edi
and ebx, 1
mov ebp, edi
xor ebp, 1
lea ebx, [ebx*2]
add ebx, ebp
mov dword [esp + edx*4 + 0x1c], ebx
mov ebp, edx
and ebp, 3
xor ebx, ebx
cmp dl, 4
jb 0x40773f
and edx, 0xfffffffc
xor ebx, ebx
nop
nop
nop
nop
mov ecx, edi
and ecx, 1
shl ecx, 2
lea ecx, [ecx + ebx*8]
mov ebx, edi
and ebx, 2
or ebx, ecx
mov ecx, edi
shr ecx, 2
and ecx, 1
or ecx, ebx
mov ebx, edi
shr ebx, 3
and ebx, 1
lea ebx, [ebx + ecx*2]
shr edi, 4
add edx, 0xfffffffc
jne 0x407710
test ebp, ebp
je 0x4076c0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edi
and ecx, 1
lea ebx, [ecx + ebx*2]
shr edi, 1
dec ebp
jne 0x407750
jmp 0x4076c0
push 0x84
push 0
lea eax, [esp + 0x164]
push eax
call fcn.004090e0
add esp, 0xc
xor eax, eax
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax + 0x9032]
inc dword [esp + ecx*4 + 0x15c]
movzx ecx, byte [esi + eax + 0x9033]
inc dword [esp + ecx*4 + 0x15c]
movzx ecx, byte [esi + eax + 0x9034]
inc dword [esp + ecx*4 + 0x15c]
movzx ecx, byte [esi + eax + 0x9035]
inc dword [esp + ecx*4 + 0x15c]
add eax, 4
cmp eax, 0x20
jne 0x407780
mov dword [esp + 0x20], 0
mov eax, 2
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
or edx, 0x3ffffffe
mov edi, eax
and edi, 0x3ffffffe
add edi, edx
add ecx, dword [esp + edi*4 + 0x160]
add ecx, ecx
mov dword [esp + eax*4 + 0x1c], ecx
mov edx, eax
and edx, 1
xor eax, 1
lea edx, [eax + edx*2]
mov edi, eax
or edi, 0x3ffffffe
mov ebx, edx
and ebx, 0x3ffffffe
add ebx, edi
add ecx, dword [esp + ebx*4 + 0x160]
add ecx, ecx
mov dword [esp + edx*4 + 0x1c], ecx
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
cmp eax, 0x10
jl 0x4077e0
xor eax, eax
jmp 0x407852
mov word [esi + eax*2 + 0x8a92], di
inc eax
cmp eax, 0x20
je 0x4078f2
movzx ebx, byte [esi + eax + 0x9032]
test ebx, ebx
je 0x407848
mov ecx, dword [esp + ebx*4 + 0x1c]
mov edx, ecx
and edx, 1
mov edi, ecx
xor edi, 1
lea edx, [edi + edx*2]
mov dword [esp + ebx*4 + 0x1c], edx
mov edx, ebx
and edx, 3
xor edi, edi
cmp bl, 4
jb 0x4078cb
and ebx, 0xfffffffc
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, ecx
and ebp, 1
shl ebp, 2
lea edi, [edi*8]
add edi, ebp
mov ebp, ecx
and ebp, 2
or ebp, edi
mov edi, ecx
shr edi, 2
and edi, 1
or edi, ebp
mov ebp, ecx
shr ebp, 3
and ebp, 1
lea edi, [edi*2]
add edi, ebp
shr ecx, 4
add ebx, 0xfffffffc
jne 0x407890
test edx, edx
je 0x407840
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
and ebx, 1
lea edi, [ebx + edi*2]
shr ecx, 1
dec edx
jne 0x4078e0
jmp 0x407840
mov eax, dword [esi + 0x44]
mov ebp, dword [esi + 0x48]
bts ebp, eax
mov dword [esi + 0x48], ebp
add eax, 2
mov dword [esi + 0x44], eax
cmp eax, 8
jae 0x407925
jmp 0x40828b
shr ebp, 8
mov dword [esi + 0x48], ebp
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x40828b
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x407910
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov eax, ebp
mov byte [ecx], al
mov eax, dword [esi + 0x44]
mov ebp, dword [esi + 0x48]
jmp 0x407910
mov word [esi + 0x8392], 1
mov ecx, esi
xor edx, edx
push 0
push 0xf
push 0x120
call fcn.004085c0
add esp, 0xc
mov ecx, esi
mov edx, 1
push 0
push 0xf
push 0x20
call fcn.004085c0
add esp, 0xc
mov ebp, 0x11e
cmp byte [esi + 0x902f], 0
jne 0x407b55
mov ebp, 0x11d
cmp byte [esi + 0x902e], 0
jne 0x407b55
mov ebp, 0x11c
cmp byte [esi + 0x902d], 0
jne 0x407b55
mov ebp, 0x11b
cmp byte [esi + 0x902c], 0
jne 0x407b55
mov ebp, 0x11a
cmp byte [esi + 0x902b], 0
jne 0x407b55
mov ebp, 0x119
cmp byte [esi + 0x902a], 0
jne 0x407b55
mov ebp, 0x118
cmp byte [esi + 0x9029], 0
jne 0x407b55
mov ebp, 0x117
cmp byte [esi + 0x9028], 0
jne 0x407b55
mov ebp, 0x116
cmp byte [esi + 0x9027], 0
jne 0x407b55
mov ebp, 0x115
cmp byte [esi + 0x9026], 0
jne 0x407b55
mov ebp, 0x114
cmp byte [esi + 0x9025], 0
jne 0x407b55
mov ebp, 0x113
cmp byte [esi + 0x9024], 0
jne 0x407b55
mov ebp, 0x112
cmp byte [esi + 0x9023], 0
jne 0x407b55
mov ebp, 0x111
cmp byte [esi + 0x9022], 0
jne 0x407b55
mov ebp, 0x110
cmp byte [esi + 0x9021], 0
jne 0x407b55
mov ebp, 0x10f
cmp byte [esi + 0x9020], 0
jne 0x407b55
mov ebp, 0x10e
cmp byte [esi + 0x901f], 0
jne 0x407b55
mov ebp, 0x10d
cmp byte [esi + 0x901e], 0
jne 0x407b55
mov ebp, 0x10c
cmp byte [esi + 0x901d], 0
jne 0x407b55
mov ebp, 0x10b
cmp byte [esi + 0x901c], 0
jne 0x407b55
mov ebp, 0x10a
cmp byte [esi + 0x901b], 0
jne 0x407b55
mov ebp, 0x109
cmp byte [esi + 0x901a], 0
jne 0x407b55
mov ebp, 0x108
cmp byte [esi + 0x9019], 0
jne 0x407b55
mov ebp, 0x107
cmp byte [esi + 0x9018], 0
jne 0x407b55
mov ebp, 0x106
cmp byte [esi + 0x9017], 0
jne 0x407b55
mov ebp, 0x105
cmp byte [esi + 0x9016], 0
jne 0x407b55
mov ebp, 0x104
cmp byte [esi + 0x9015], 0
jne 0x407b55
mov ebp, 0x103
cmp byte [esi + 0x9014], 0
jne 0x407b55
cmp byte [esi + 0x9013], 1
mov ebp, 0x102
sbb ebp, 0
lea eax, [esi + 0x8f12]
mov edi, 0x904f
mov ecx, 0x3c
cmp byte [esi + edi], 0
jne 0x407b8b
nop
nop
nop
nop
nop
cmp edi, 0x9033
je 0x407b93
cmp byte [esi + edi - 1], 0
jne 0x407b9a
add edi, 0xfffffffe
add ecx, 0xfffffffc
cmp byte [esi + edi], 0
je 0x407b70
add edi, 0xffff6fcf
jmp 0x407ba0
mov edi, 1
jmp 0x407ba0
add edi, 0xffff6fce
lea ecx, [esp + 0x15c]
push ebp
push eax
push ecx
call fcn.00409090
add esp, 0xc
lea eax, [esp + ebp]
add eax, 0x15c
lea ecx, [esi + 0x9032]
push edi
push ecx
push eax
call fcn.00409090
add esp, 0xc
mov dword [esp + 0x14], edi
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 edi, ebp
mov dword [esp + 0xc], edi
je 0x407e50
mov dword [esp + 0x10], ebp
lea eax, [esi + 0x8612]
mov dword [esp + 0x18], eax
mov cl, 0xff
xor edi, edi
xor ebp, ebp
xor ebx, ebx
xor edx, edx
jmp 0x407c92
inc word [esi + 0x8632]
mov byte [esp + ebp + 0x1c], 0x10
add dl, 0xfd
mov byte [esp + ebp + 0x1d], dl
add ebp, 2
inc word [esi + ecx*2 + 0x8612]
lea eax, [ebp + 1]
mov edx, ecx
mov byte [esp + ebp + 0x1c], cl
xor ebx, ebx
mov ebp, eax
mov ecx, edx
xor edx, edx
inc edi
cmp dword [esp + 0xc], edi
je 0x407e22
mov eax, ecx
movzx ecx, byte [esp + edi + 0x15c]
test ecx, ecx
je 0x407d10
test ebx, ebx
je 0x407ce1
cmp ebx, 2
ja 0x407d4a
mov byte [esp + 7], al
mov eax, dword [esp + 0x18]
add word [eax], bx
lea eax, [esp + ebp]
add eax, 0x1c
push ebx
push 0
push eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
call fcn.004090e0
movzx eax, byte [esp + 0x13]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
add esp, 0xc
add ebp, ebx
cmp cl, al
jne 0x407de5
inc edx
xor ebx, ebx
cmp edx, 6
jne 0x407c87
mov edx, ecx
inc word [esi + 0x8632]
mov byte [esp + ebp + 0x1c], 0x10
mov eax, ebp
inc ebp
add eax, 2
mov cl, 3
jmp 0x407c7b
test edx, edx
je 0x407d9d
cmp edx, 2
ja 0x407d87
movzx eax, al
add word [esi + eax*2 + 0x8612], dx
mov dword [esp], ecx
lea ecx, [esp + ebp]
add ecx, 0x1c
push edx
push eax
push ecx
mov dword [esp + 0x14], edx
call fcn.004090e0
mov ecx, dword [esp + 0xc]
add esp, 0xc
add ebp, dword [esp + 8]
jmp 0x407d9d
cmp ebx, 0xa
ja 0x407dc7
mov byte [esp + 7], al
movzx eax, word [esi + 0x8634]
mov dword [esp + 8], edx
mov edx, ecx
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov ecx, edx
mov edx, dword [esp + 8]
mov word [esi + 0x8634], ax
movzx eax, byte [esp + 7]
mov byte [esp + ebp + 0x1c], 0x11
add bl, 0xfd
jmp 0x407dd6
inc word [esi + 0x8632]
mov byte [esp + ebp + 0x1c], 0x10
add dl, 0xfd
mov byte [esp + ebp + 0x1d], dl
add ebp, 2
inc ebx
xor edx, edx
cmp ebx, 0x8a
jne 0x407c87
mov edx, ecx
inc word [esi + 0x8636]
mov byte [esp + ebp + 0x1c], 0x12
mov eax, ebp
inc ebp
add eax, 2
mov cl, 0x7f
jmp 0x407c7b
inc word [esi + 0x8636]
mov byte [esp + ebp + 0x1c], 0x12
add bl, 0xf5
mov byte [esp + ebp + 0x1d], bl
add ebp, 2
cmp cl, al
je 0x407ce9
test edx, edx
je 0x407c6e
cmp edx, 2
ja 0x407c58
movzx eax, al
add word [esi + eax*2 + 0x8612], dx
mov dword [esp], ecx
lea ecx, [esp + ebp]
add ecx, 0x1c
push edx
push eax
push ecx
mov ebx, edx
call fcn.004090e0
mov ecx, dword [esp + 0xc]
add esp, 0xc
add ebp, ebx
jmp 0x407c6e
test edx, edx
je 0x407e59
cmp edx, 2
ja 0x407e82
add word [esi + ecx*2 + 0x8612], dx
lea eax, [esp + ebp]
add eax, 0x1c
movzx ecx, cl
push edx
push ecx
push eax
mov edi, edx
call fcn.004090e0
add esp, 0xc
add ebp, edi
mov dword [esp], ebp
jmp 0x407ecc
mov dword [esp], 0
jmp 0x407ed0
test ebx, ebx
je 0x407e98
cmp ebx, 2
ja 0x407e9d
mov eax, dword [esp + 0x18]
add word [eax], bx
lea eax, [esp + ebp]
add eax, 0x1c
push ebx
push 0
push eax
call fcn.004090e0
add esp, 0xc
add ebp, ebx
mov dword [esp], ebp
jmp 0x407ecc
inc word [esi + 0x8632]
mov byte [esp + ebp + 0x1c], 0x10
add dl, 0xfd
mov byte [esp + ebp + 0x1d], dl
add ebp, 2
mov dword [esp], ebp
jmp 0x407ecc
lea eax, [ebp + 2]
mov dword [esp], eax
cmp ebx, 0xa
ja 0x407eb9
inc word [esi + 0x8634]
mov byte [esp + ebp + 0x1c], 0x11
add bl, 0xfd
jmp 0x407ec8
inc word [esi + 0x8636]
mov byte [esp + ebp + 0x1c], 0x12
add bl, 0xf5
mov byte [esp + ebp + 0x1d], bl
mov ebp, dword [esp + 0x10]
mov ebx, 2
mov ecx, esi
mov edx, 2
push 0
push 7
push 0x13
call fcn.004085c0
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
jae 0x407f49
mov eax, ebp
or eax, 0xfffffefe
and ebp, 0x1e
lea edx, [eax + ebp]
inc edx
shl edx, cl
or edx, ebx
mov dword [esi + 0x48], edx
lea eax, [ecx + 5]
mov dword [esi + 0x44], eax
cmp ecx, 3
jb 0x407f99
mov ebx, dword [esp + 0x14]
jmp 0x407f81
shr ebx, 8
mov dword [esi + 0x48], ebx
mov eax, ecx
or eax, 0xfffffff7
and ecx, 0xfffffff7
add ecx, eax
inc ecx
mov dword [esi + 0x44], ecx
cmp ecx, 7
jbe 0x407f00
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x407f30
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], bl
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x407f30
shr edx, 8
mov dword [esi + 0x48], edx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x407f9d
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x407f70
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov byte [ecx], dl
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
jmp 0x407f70
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 0x408135
mov edx, 0x13
cmp byte [esi + 0x9161], 0
jne 0x40809d
mov edx, 0x12
cmp byte [esi + 0x9153], 0
jne 0x40809d
mov edx, 0x11
cmp byte [esi + 0x9160], 0
jne 0x40809d
mov edx, 0x10
cmp byte [esi + 0x9154], 0
jne 0x40809d
mov edx, 0xf
cmp byte [esi + 0x915f], 0
jne 0x40809d
mov edx, 0xe
cmp byte [esi + 0x9155], 0
jne 0x40809d
mov edx, 0xd
cmp byte [esi + 0x915e], 0
jne 0x40809d
mov edx, 0xc
cmp byte [esi + 0x9156], 0
jne 0x40809d
mov edx, 0xb
cmp byte [esi + 0x915d], 0
jne 0x40809d
mov edx, 0xa
cmp byte [esi + 0x9157], 0
jne 0x40809d
mov edx, 9
cmp byte [esi + 0x915c], 0
jne 0x40809d
mov edx, 8
cmp byte [esi + 0x9158], 0
jne 0x40809d
mov edx, 7
cmp byte [esi + 0x915b], 0
jne 0x40809d
mov edx, 6
cmp byte [esi + 0x9159], 0
jne 0x40809d
xor edx, edx
cmp byte [esi + 0x915a], 0
sete dl
xor edx, 5
lea eax, [edx - 4]
shl eax, cl
or eax, ebx
mov edi, eax
mov dword [esi + 0x48], eax
lea eax, [ecx + 4]
mov dword [esi + 0x44], eax
cmp ecx, 4
jae 0x408177
xor ebx, ebx
jmp 0x4080c9
inc ebx
cmp ebx, edx
je 0x408183
mov ecx, eax
movzx ebp, byte [ebx + 0x43bff6]
movzx ebp, byte [esi + ebp + 0x9152]
shl ebp, cl
or ebp, edi
mov edi, ebp
mov dword [esi + 0x48], ebp
add eax, 3
mov dword [esi + 0x44], eax
cmp ecx, 5
jae 0x408113
jmp 0x4080c0
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov eax, edi
mov byte [ecx], al
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
shr ecx, 8
mov edi, ecx
mov dword [esi + 0x48], ecx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x4080c0
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jb 0x4080f0
mov ecx, edi
jmp 0x408100
shr ebx, 8
mov dword [esi + 0x48], ebx
add ecx, 0xfffffff8
mov dword [esi + 0x44], ecx
cmp ecx, 7
jbe 0x407fb6
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x408120
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], bl
mov ecx, dword [esi + 0x44]
mov ebx, dword [esi + 0x48]
jmp 0x408120
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov eax, edi
mov byte [ecx], al
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
shr ecx, 8
mov edi, ecx
mov dword [esi + 0x48], ecx
add eax, 0xfffffff8
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x4080b8
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jb 0x408150
mov ecx, edi
jmp 0x408160
cmp dword [esp], 0
je 0x408289
xor ebp, ebp
jmp 0x4081aa
inc ebp
cmp ebp, dword [esp]
jae 0x408289
mov ecx, eax
mov dword [esp + 0xc], ebp
movzx ebx, byte [esp + ebp + 0x1c]
movzx ebp, word [esi + ebx*2 + 0x8cd2]
movzx eax, byte [esi + ebx + 0x9152]
add eax, ecx
shl ebp, cl
or ebp, edi
mov edi, ebp
mov dword [esi + 0x48], ebp
mov dword [esi + 0x44], eax
cmp eax, 8
jb 0x408220
mov ebp, dword [esp + 0xc]
jmp 0x40820c
lea eax, [ecx + 1]
mov dword [esi + 0x30], eax
mov eax, edi
mov byte [ecx], al
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
shr ecx, 8
mov edi, ecx
mov dword [esi + 0x48], ecx
mov ecx, eax
xor ecx, 0xfffffff7
and eax, 0xfffffff7
lea eax, [ecx + eax*2]
inc eax
mov dword [esi + 0x44], eax
cmp eax, 7
jbe 0x408224
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jb 0x4081e0
mov ecx, edi
jmp 0x4081f0
mov ebp, dword [esp + 0xc]
cmp bl, 0x10
jb 0x4081a0
movzx edx, byte [esp + ebp + 0x1d]
add ebp, 2
movsx ebx, byte [ebx + 0x43d67c]
mov ecx, eax
shl edx, cl
or edx, edi
mov dword [esi + 0x48], edx
add ebx, eax
mov dword [esi + 0x44], ebx
cmp ebx, 8
jae 0x408271
mov edi, edx
mov eax, ebx
cmp ebp, dword [esp]
jb 0x4081aa
jmp 0x408289
shr edx, 8
mov dword [esi + 0x48], edx
add ebx, 0xfffffff8
mov dword [esi + 0x44], ebx
cmp ebx, 7
jbe 0x40824f
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x408260
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], dl
mov ebx, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
jmp 0x408260
mov ebp, edi
lea edi, [esi + 0x9272]
cmp edi, dword [esi + 0x28]
jae 0x40852f
mov ebx, 1
jmp 0x4082c1
mov ebx, dword [esp + 0xc]
shr ebx, 1
mov eax, edx
cmp edi, dword [esi + 0x28]
jae 0x408531
cmp ebx, 1
jne 0x4082d0
movzx ebx, byte [edi]
inc edi
or ebx, 0x100
mov dword [esp + 0xc], ebx
test bl, 1
jne 0x408340
movzx ecx, byte [edi]
inc edi
mov ebx, edi
movzx edi, word [esi + ecx*2 + 0x8852]
movzx edx, byte [esi + ecx + 0x8f12]
mov ecx, eax
shl edi, cl
or ebp, edi
mov dword [esi + 0x48], ebp
add edx, eax
mov dword [esi + 0x44], edx
mov edi, ebx
cmp edx, 8
jb 0x4082b0
mov ebx, dword [esp + 0xc]
jmp 0x408321
shr ebp, 8
mov dword [esi + 0x48], ebp
add edx, 0xfffffff8
mov dword [esi + 0x44], edx
cmp edx, 7
jbe 0x4082b4
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x408310
mov edx, ebp
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], dl
mov edx, dword [esi + 0x44]
mov ebp, dword [esi + 0x48]
jmp 0x408310
movzx edx, byte [edi]
movzx ecx, word [edx + edx + 0x43bdf6]
movzx ebx, word [esi + ecx*2 + 0x8852]
mov dword [esp], ebx
movzx ebx, byte [esi + ecx + 0x8f12]
add ebx, eax
mov ecx, eax
mov eax, dword [esp]
shl eax, cl
movzx ecx, byte [edi + 1]
mov dword [esp], edi
movzx edi, byte [edi + 2]
or ebp, eax
mov dword [esp + 8], edi
shl edi, 8
mov eax, ebp
mov dword [esi + 0x48], ebp
mov dword [esi + 0x44], ebx
mov ebp, edi
cmp ebx, 8
jae 0x408435
or ebp, ecx
movzx edi, byte [edx + 0x43c050]
and edx, dword [edi*4 + 0x43c00c]
mov ecx, ebx
shl edx, cl
or edx, eax
mov dword [esi + 0x48], edx
add ebx, edi
mov dword [esi + 0x44], ebx
cmp ebx, 8
jae 0x4083f1
cmp ebp, 0x200
jb 0x408450
mov eax, dword [esp + 8]
lea ecx, [eax + 0x43bd76]
lea eax, [eax + 0x43c350]
mov dword [esp + 8], eax
jmp 0x408460
shr edx, 8
mov dword [esi + 0x48], edx
add ebx, 0xfffffff8
mov dword [esi + 0x44], ebx
cmp ebx, 7
jbe 0x4083b1
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x4083e0
lea edi, [ecx + 1]
mov dword [esi + 0x30], edi
mov byte [ecx], dl
mov ebx, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
jmp 0x4083e0
lea ebx, [edi + 1]
mov dword [esi + 0x30], ebx
mov byte [edi], al
mov ebx, dword [esi + 0x44]
mov edi, dword [esi + 0x48]
shr edi, 8
mov eax, edi
mov dword [esi + 0x48], edi
add ebx, 0xfffffff8
mov dword [esi + 0x44], ebx
cmp ebx, 7
jbe 0x40838e
mov edi, dword [esi + 0x30]
cmp edi, dword [esi + 0x34]
jb 0x408410
mov edi, eax
jmp 0x40841e
lea eax, [ebp + 0x43c150]
mov dword [esp + 8], eax
lea ecx, [ebp + 0x43bb76]
movzx edi, byte [ecx]
movzx eax, word [esi + edi*2 + 0x8a92]
mov ecx, ebx
shl eax, cl
or eax, edx
movzx edx, byte [esi + edi + 0x9032]
add edx, ebx
mov ecx, dword [esp + 8]
movzx ebx, byte [ecx]
mov dword [esi + 0x48], eax
mov dword [esi + 0x44], edx
cmp edx, 8
jb 0x4084d0
mov edi, dword [esp]
jmp 0x4084b1
shr eax, 8
mov dword [esi + 0x48], eax
add edx, 0xfffffff8
mov dword [esi + 0x44], edx
cmp edx, 7
jbe 0x4084d3
mov ecx, dword [esi + 0x30]
cmp ecx, dword [esi + 0x34]
jae 0x4084a0
lea edx, [ecx + 1]
mov dword [esi + 0x30], edx
mov byte [ecx], al
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x48]
jmp 0x4084a0
mov edi, dword [esp]
and ebp, dword [ebx*4 + 0x43c00c]
mov ecx, edx
shl ebp, cl
add edi, 3
or ebp, eax
mov dword [esi + 0x48], ebp
add edx, ebx
mov dword [esi + 0x44], edx
cmp edx, 8
jb 0x4082b0
mov ebx, dword [esp + 0xc]
jmp 0x408515
shr ebp, 8
mov dword [esi + 0x48], ebp
add edx, 0xfffffff8
mov dword [esi + 0x44], edx
cmp edx, 7
jbe 0x4082b4
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x34]
jae 0x408500
mov edx, ebp
lea ecx, [eax + 1]
mov dword [esi + 0x30], ecx
mov byte [eax], dl
mov edx, dword [esi + 0x44]
mov ebp, dword [esi + 0x48]
jmp 0x408500
mov edx, eax
movzx eax, word [esi + 0x8a52]
mov ecx, edx
shl eax, cl
movzx ecx, byte [esi + 0x9012]
mov edi, eax
not edi
and edi, ebp
xor eax, ebp
add eax, ebp
sub eax, edi
mov dword [esi + 0x48], eax
add ecx, edx
mov dword [esi + 0x44], ecx
cmp ecx, 8
jae 0x40859a
mov ecx, dword [esi + 0x30]
xor eax, eax
cmp ecx, dword [esi + 0x34]
setb al
add esp, 0x29c
pop esi
pop edi
pop ebx
pop ebp
ret
shr eax, 8
mov dword [esi + 0x48], eax
mov edx, ecx
xor edx, 0xfffffff7
and ecx, 0xfffffff7
lea ecx, [edx + ecx*2]
inc ecx
mov dword [esi + 0x44], ecx
cmp ecx, 7
jbe 0x40855c
mov edx, dword [esi + 0x30]
cmp edx, dword [esi + 0x34]
jae 0x408580
lea ecx, [edx + 1]
mov dword [esi + 0x30], ecx
mov byte [edx], al
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x48]
jmp 0x408580