Function at 0x530fc0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0xdc]
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x64], 0
xor eax, eax
push fcn.00530f80
push ebp
push 0x413330
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x532b72
mov esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov ecx, eax
test ecx, ecx
jl 0x531060
mov dword [ebp - 0x6c], 0xffffffff
lea esi, [esi]
add dword [ebp - 0x6c], 1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0x6c], 0x30
cmp byte [edx + eax + 0x2c], 0
jne 0x531058
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul ebx, dword [ebp - 0x6c], 0x30
mov eax, dword [eax + 0xc]
mov dword [edx + ebx + 0x28], eax
mov esi, esi
cmp ecx, dword [ebp - 0x6c]
jg 0x531030
lea esi, [esi]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x14], 0
je 0x53107a
mov eax, dword [ebp - 0x70]
sub eax, 2
cmp eax, 2
jae 0x53107a
mov byte [ebp - 0x34], 1
jmp 0x53107e
mov byte [ebp - 0x34], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 1
jne 0x5311e4
cmp byte [ebp - 0x34], 0
je 0x53113b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
add eax, 0x10
mov ecx, eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x61df00]
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ecx + 2]
movzx eax, byte [eax + 0x61df00]
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ecx + 4]
movzx eax, byte [eax + 0x61df00]
and edx, 0xffffff00
or edx, eax
movzx eax, word [ecx + 6]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0x28], 1
sete al
push eax
cmp dword [ebp - 0x70], 2
sete al
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov eax, dword [ebp - 0x68]
xor cl, cl
call fcn.0052dcb0
jmp 0x532b72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
add eax, 0x10
mov ecx, eax
movzx eax, word [ecx]
movzx eax, byte [eax + 0x61df00]
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ecx + 2]
movzx eax, byte [eax + 0x61df00]
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ecx + 4]
movzx eax, byte [eax + 0x61df00]
and edx, 0xffffff00
or edx, eax
movzx eax, word [ecx + 6]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
push edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
cmp dword [eax + 0x28], 1
sete al
push eax
push dword [ebp - 0x70]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x15]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov eax, dword [ebp - 0x68]
xor cl, cl
call fcn.0052d6d0
jmp 0x532b72
push 0
lea eax, [ebp - 0x44]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004b9920
mov byte [ebp - 0xd4], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov ebx, eax
test ebx, ebx
jl 0x531328
mov dword [ebp - 0x6c], 0xffffffff
mov esi, esi
add dword [ebp - 0x6c], 1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x68]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0x6c], 0x30
mov eax, dword [edx + eax]
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x1c]
call fcn.00549370
test al, al
je 0x5312f6
mov eax, dword [ebp - 0x18]
add eax, 1
push eax
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x20]
add eax, 1
mov ecx, eax
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
call fcn.004b9920
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
imul edx, dword [ebp - 0x6c], 0x30
lea edi, [eax + edx + 0x18]
lea esi, [ebp - 0x60]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov al, byte [ebp - 0xd4]
test al, al
je 0x5312ab
mov byte [ebp - 0xd4], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0x6c], 0x30
lea edi, [ebp - 0x44]
lea esi, [edx + eax + 0x18]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x53131f
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x1c]
jle 0x5312bc
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
lea esi, [esi]
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x14]
jle 0x5312cc
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x40], eax
mov esi, esi
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x20]
jg 0x5312e0
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x3c], eax
lea esi, [esi]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x18]
jg 0x53131f
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x38], eax
lea esi, [esi]
jmp 0x53131f
push 0
lea eax, [ebp - 0x60]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004b9920
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
imul edx, dword [ebp - 0x6c], 0x30
lea edi, [eax + edx + 0x18]
lea esi, [ebp - 0x60]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
cmp ebx, dword [ebp - 0x6c]
jg 0x531218
mov al, byte [ebp - 0xd4]
test al, al
jne 0x532b72
mov esi, esi
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3c]
sub eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x38]
sub eax, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x54]
push eax
mov edx, 0x609bf0
lea eax, [ebp - 8]
mov ecx, 1
call fcn.0040bdd0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov edi, eax
test edi, edi
jl 0x5313f4
mov dword [ebp - 0x6c], 0xffffffff
lea esi, [esi]
nop
add dword [ebp - 0x6c], 1
mov esi, 0x609ba0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
imul edx, dword [ebp - 0x6c], 0x30
mov eax, dword [eax + edx]
lea edx, [ebp - 0x64]
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx + 8]
imul ecx, dword [ebp - 0x6c], 0x30
mov ecx, dword [ebx + ecx]
mov ecx, dword [ecx]
call dword [ecx + 0x70]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 8]
imul ecx, dword [ebp - 0x6c], 0x14
lea eax, [eax + ecx + 0x10]
mov ecx, esi
call fcn.0040bdb0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edx
add eax, 2
shl eax, 1
mov edx, eax
mov eax, dword [ebp - 8]
imul ecx, dword [ebp - 0x6c], 0x14
add eax, ecx
call fcn.0040eb90
cmp edi, dword [ebp - 0x6c]
jg 0x531390
mov esi, esi
mov eax, dword [ebp - 4]
cmp byte [eax + 0x15], 0
je 0x531413
push dword [0x609a1c]
push dword [0x609a1c]
lea eax, [ebp - 0x30]
call fcn.00491670
jmp 0x53142d
fldz
lea esp, [esp - 4]
fstp dword [esp]
fldz
lea esp, [esp - 4]
fstp dword [esp]
lea eax, [ebp - 0x30]
call fcn.00491670
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edx
add eax, 1
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x54]
push eax
mov edx, 0x609c68
lea eax, [ebp - 0x48]
mov ecx, 1
call fcn.0040bdd0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x54]
push eax
mov edx, 0x609c18
lea eax, [ebp - 0xc]
mov ecx, 1
call fcn.0040bdd0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x78], eax
cmp eax, dword [ebp - 0x14]
jl 0x532b08
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x98], eax
lea esi, [esi]
nop
add dword [ebp - 0x98], 1
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
sub eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov ebx, eax
test ebx, ebx
jl 0x531558
mov dword [ebp - 0x6c], 0xffffffff
lea esi, [esi]
add dword [ebp - 0x6c], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
imul edx, dword [ebp - 0x6c], 0x30
lea edx, [eax + edx + 0x18]
mov eax, dword [ebp - 0x98]
cmp eax, dword [edx + 4]
jl 0x53154c
mov eax, dword [ebp - 0x98]
cmp eax, dword [edx + 0xc]
jge 0x53154c
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x6c]
mov dword [edx + ecx*4], eax
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, edx
add eax, 1
shl eax, 1
mov edx, eax
mov eax, dword [ebp - 8]
imul ecx, dword [ebp - 0x6c], 0x14
mov eax, dword [eax + ecx]
xor cl, cl
call fcn.00402970
mov edx, dword [ebp - 8]
imul ecx, dword [ebp - 0x6c], 0x14
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [edx + ecx + 4], eax
mov edx, dword [ebp - 8]
imul ecx, dword [ebp - 0x6c], 0x14
mov eax, dword [ebp - 0x1c]
sub eax, 1
mov dword [edx + ecx + 8], eax
mov esi, esi
cmp ebx, dword [ebp - 0x6c]
jg 0x5314d0
lea esi, [esi]
cmp byte [ebp - 0x34], 0
je 0x5315b6
mov dword [ebp - 0x94], 0xffffffff
mov edx, dword [ebp - 0x94]
lea eax, [edx + 1]
mov dword [ebp - 0x94], eax
lea eax, [eax + eax + 1]
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fld xword [0x609a70]
fmulp st(1)
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
faddp st(1)
fstp dword [ebp - 0x54]
fld dword [ebp - 0x54]
lea esp, [esp - 4]
fstp dword [esp]
mov eax, ebp
call fcn.00532b90
cmp dword [ebp - 0x94], 0xf
jl 0x531568
jmp 0x5315d9
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fadd dword [0x609a20]
fsub dword [ebp - 0x2c]
lea esp, [esp - 4]
fstp dword [esp]
mov eax, ebp
call fcn.00532b90
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x1c]
jge 0x5315e8
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
nop
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x20]
jle 0x5315f8
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov esi, esi
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
jg 0x532af8
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, edx
add eax, 1
shl eax, 4
mov edx, eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x1c]
sub eax, ebx
shl eax, 4
add eax, ecx
xor cl, cl
call fcn.00402970
cmp byte [ebp - 0x34], 0
je 0x531935
mov eax, dword [ebp - 0x10]
sub eax, 1
mov dword [ebp - 0xa8], eax
test eax, eax
jl 0x531c30
mov dword [ebp - 0x6c], 0xffffffff
add dword [ebp - 0x6c], 1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x14
add eax, ecx
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x30
lea edi, [ecx + eax]
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx + 4]
cmp eax, dword [edx + 8]
jg 0x531920
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx + 4]
cmp eax, dword [ebp - 0x1c]
jge 0x5316ac
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xb4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xb4]
mov edx, dword [eax + 8]
cmp edx, dword [ebp - 0x20]
jle 0x5316c8
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xb4]
mov dword [edx + 8], eax
mov esi, esi
cmp dword [edi + 8], 0
je 0x531841
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xb4]
mov edx, dword [eax + 4]
mov eax, dword [edi + 8]
mov ebx, dword [edi + 8]
mov ebx, dword [ebx]
call dword [ebx + 0xc]
mov edx, dword [edi + 8]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], edx
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x1c]
sub eax, edx
shl eax, 1
add eax, dword [ecx]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xb4]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xb4]
cmp esi, dword [eax + 4]
jl 0x531920
mov eax, dword [ebp - 0xb4]
mov edx, dword [eax + 4]
lea eax, [edx - 1]
mov dword [ebp - 0xa4], eax
lea esi, [esi]
add dword [ebp - 0xa4], 1
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0xa4]
sub edx, eax
mov eax, edx
shl eax, 4
lea ebx, [ecx + eax]
mov eax, dword [ebp - 0x90]
cmp word [eax], 0
je 0x53181e
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call edx
mov edx, eax
shr edx, 0x10
and edx, 0xff
mov dx, word [edx + edx + 0x61db00]
mov word [ebp - 0x50], dx
mov edx, eax
shr edx, 8
and edx, 0xff
mov dx, word [edx + edx + 0x61db00]
mov word [ebp - 0x4e], dx
mov edx, eax
and edx, 0xff
mov dx, word [edx + edx + 0x61db00]
mov word [ebp - 0x4c], dx
shr eax, 0x18
and eax, 0xff
mov edx, eax
shl edx, 8
add eax, edx
mov word [ebp - 0x4a], ax
mov eax, dword [ebp - 0x90]
movzx edx, word [eax]
movzx eax, word [ebp - 0x4a]
imul edx, eax
mov eax, edx
shr eax, 0x14
mov dword [ebp - 0x88], eax
test eax, eax
je 0x531826
movzx eax, word [ebp - 0x50]
imul eax, dword [ebp - 0x88]
add dword [ebx], eax
movzx eax, word [ebp - 0x4e]
imul eax, dword [ebp - 0x88]
add dword [ebx + 4], eax
movzx eax, word [ebp - 0x4c]
imul eax, dword [ebp - 0x88]
add dword [ebx + 8], eax
mov eax, dword [ebp - 0x88]
add dword [ebx + 0xc], eax
jmp 0x531826
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call edx
add dword [ebp - 0x90], 2
cmp esi, dword [ebp - 0xa4]
jg 0x531740
lea esi, [esi]
jmp 0x531920
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x1c]
sub eax, edx
shl eax, 1
add eax, dword [ecx]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xb4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xb4]
cmp edx, dword [eax + 4]
jl 0x531920
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ecx + 4]
sub eax, 1
mov dword [ebp - 0xa4], eax
nop
add dword [ebp - 0xa4], 1
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xa4]
sub ecx, eax
mov eax, ecx
shl eax, 4
add eax, ebx
mov ecx, dword [ebp - 0x90]
cmp word [ecx], 0
je 0x53190c
mov ecx, dword [ebp - 0x90]
movzx ebx, word [ecx]
movzx ecx, word [ebp - 0x4a]
imul ebx, ecx
mov ecx, ebx
shr ecx, 0x14
mov dword [ebp - 0x88], ecx
test ecx, ecx
je 0x53190c
movzx ecx, word [ebp - 0x50]
imul ecx, dword [ebp - 0x88]
add dword [eax], ecx
movzx ecx, word [ebp - 0x4e]
imul ecx, dword [ebp - 0x88]
add dword [eax + 4], ecx
movzx ecx, word [ebp - 0x4c]
imul ecx, dword [ebp - 0x88]
add dword [eax + 8], ecx
mov ecx, dword [ebp - 0x88]
add dword [eax + 0xc], ecx
mov esi, esi
add dword [ebp - 0x90], 2
cmp edx, dword [ebp - 0xa4]
jg 0x531890
nop
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0x6c]
jg 0x531650
nop
jmp 0x531c30
mov eax, dword [ebp - 0x10]
sub eax, 1
mov dword [ebp - 0xac], eax
test eax, eax
jl 0x531c30
mov dword [ebp - 0x6c], 0xffffffff
add dword [ebp - 0x6c], 1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x14
add eax, ecx
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + edx*4]
imul eax, eax, 0x30
lea edi, [ecx + eax]
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 4]
cmp eax, dword [edx + 8]
jg 0x531c20
mov eax, dword [ebp - 0xb8]
mov edx, dword [eax + 4]
cmp edx, dword [ebp - 0x1c]
jge 0x5319ac
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xb8]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 8]
cmp eax, dword [ebp - 0x20]
jle 0x5319c8
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xb8]
mov dword [eax + 8], edx
mov esi, esi
cmp dword [edi + 8], 0
je 0x531b41
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xb8]
mov edx, dword [eax + 4]
mov eax, dword [edi + 8]
mov ebx, dword [edi + 8]
mov ebx, dword [ebx]
call dword [ebx + 0xc]
mov edx, dword [edi + 8]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x80], edx
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x1c]
sub eax, edx
shl eax, 1
add eax, dword [ecx]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xb8]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xb8]
cmp esi, dword [eax + 4]
jl 0x531c20
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 4]
sub eax, 1
mov dword [ebp - 0xa4], eax
lea esi, [esi]
add dword [ebp - 0xa4], 1
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa4]
sub eax, edx
shl eax, 4
lea ebx, [ecx + eax]
mov eax, dword [ebp - 0x90]
cmp word [eax], 0
je 0x531b1e
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call edx
mov edx, eax
shr edx, 0x10
and edx, 0xff
mov dx, word [edx + edx + 0x61db00]
mov word [ebp - 0x50], dx
mov edx, eax
shr edx, 8
and edx, 0xff
mov dx, word [edx + edx + 0x61db00]
mov word [ebp - 0x4e], dx
mov edx, eax
and edx, 0xff
mov dx, word [edx + edx + 0x61db00]
mov word [ebp - 0x4c], dx
shr eax, 0x18
and eax, 0xff
mov edx, eax
shl edx, 8
add eax, edx
mov word [ebp - 0x4a], ax
mov eax, dword [ebp - 0x90]
movzx edx, word [eax]
movzx eax, word [ebp - 0x4a]
imul edx, eax
mov eax, edx
shr eax, 0x10
mov dword [ebp - 0x88], eax
test eax, eax
je 0x531b26
movzx eax, word [ebp - 0x50]
imul eax, dword [ebp - 0x88]
add dword [ebx], eax
movzx eax, word [ebp - 0x4e]
imul eax, dword [ebp - 0x88]
add dword [ebx + 4], eax
movzx eax, word [ebp - 0x4c]
imul eax, dword [ebp - 0x88]
add dword [ebx + 8], eax
mov eax, dword [ebp - 0x88]
add dword [ebx + 0xc], eax
mov esi, esi
jmp 0x531b26
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
call edx
add dword [ebp - 0x90], 2
cmp esi, dword [ebp - 0xa4]
jg 0x531a40
lea esi, [esi]
jmp 0x531c20
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x1c]
sub eax, edx
shl eax, 1
add eax, dword [ecx]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xb8]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xb8]
cmp edx, dword [eax + 4]
jl 0x531c20
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 4]
lea eax, [ecx - 1]
mov dword [ebp - 0xa4], eax
nop
add dword [ebp - 0xa4], 1
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xa4]
sub ecx, eax
mov eax, ecx
shl eax, 4
lea ecx, [ebx + eax]
mov eax, dword [ebp - 0x90]
cmp word [eax], 0
je 0x531c0c
mov eax, dword [ebp - 0x90]
movzx ebx, word [eax]
movzx eax, word [ebp - 0x4a]
imul ebx, eax
mov eax, ebx
shr eax, 0x10
mov dword [ebp - 0x88], eax
test eax, eax
je 0x531c0c
movzx eax, word [ebp - 0x50]
imul eax, dword [ebp - 0x88]
add dword [ecx], eax
movzx eax, word [ebp - 0x4e]
imul eax, dword [ebp - 0x88]
add dword [ecx + 4], eax
movzx eax, word [ebp - 0x4c]
imul eax, dword [ebp - 0x88]
add dword [ecx + 8], eax
mov eax, dword [ebp - 0x88]
add dword [ecx + 0xc], eax
nop
add dword [ebp - 0x90], 2
cmp edx, dword [ebp - 0xa4]
jg 0x531b90
nop
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x6c]
jg 0x531950
nop
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov ebx, dword [ecx]
call dword [ebx + 0xd0]
mov edx, dword [ebp - 0x24]
shl edx, 2
add eax, edx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa4]
sub eax, edx
shl eax, 4
add eax, ecx
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x53294e
sub eax, 1
je 0x532ae6
sub eax, 1
je 0x53261a
sub eax, 1
je 0x5320aa
sub eax, 1
je 0x5327be
jmp 0x532af8
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x84], eax
add dword [ebp - 0xa0], 0x10
mov ecx, dword [ebp - 0x84]
cmp dword [ecx + 0xc], 0
je 0x53209c
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx]
xor edx, edx
div ebx
mov word [ebp - 0x50], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 4]
xor edx, edx
div ebx
mov word [ebp - 0x4e], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 8]
xor edx, edx
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x531d1d
mov byte [ebp - 0x74], 0xff
jmp 0x531d23
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x74], al
movzx eax, byte [ebp - 0x74]
mov edx, eax
shl eax, 8
add eax, edx
mov word [ebp - 0x4a], ax
mov dword [ebp - 0x9c], 1
jmp 0x531d55
add dword [ebp - 0xa4], 1
add dword [ebp - 0xa0], 0x10
add dword [ebp - 0x9c], 1
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jge 0x531d86
mov ebx, dword [ebp - 0xa0]
mov edx, ecx
mov eax, dword [ebx + 0xc]
cmp eax, dword [edx + 0xc]
jne 0x531d86
mov eax, dword [ebx + 8]
cmp eax, dword [edx + 8]
jne 0x531d86
mov eax, dword [ebx + 4]
cmp eax, dword [edx + 4]
jne 0x531d86
mov eax, dword [ebx]
cmp eax, dword [edx]
je 0x531d40
cmp dword [ebp - 0x9c], 1
jne 0x531ff1
mov eax, dword [ebp - 0x8c]
mov dl, byte [eax + 3]
test dl, dl
je 0x531dac
sub dl, 0xff
je 0x531df8
jmp 0x531eb4
movzx eax, word [ebp - 0x50]
mov dl, byte [eax + 0x61df00]
mov eax, dword [ebp - 0x8c]
mov byte [eax + 2], dl
movzx eax, word [ebp - 0x4e]
mov dl, byte [eax + 0x61df00]
mov eax, dword [ebp - 0x8c]
mov byte [eax + 1], dl
movzx eax, word [ebp - 0x4c]
mov dl, byte [eax + 0x61df00]
mov eax, dword [ebp - 0x8c]
mov byte [eax], dl
mov dl, byte [ebp - 0x74]
mov eax, dword [ebp - 0x8c]
mov byte [eax + 3], dl
jmp 0x532088
movzx eax, byte [ebp - 0x74]
cmp eax, 0x80
jb 0x531e08
add eax, 1
mov esi, esi
mov edx, dword [ebp - 0x8c]
movzx ecx, byte [edx + 2]
movzx ecx, word [ecx + ecx + 0x61db00]
mov edx, 0x100
sub edx, eax
imul ecx, edx
movzx edx, word [ebp - 0x50]
imul edx, eax
add edx, ecx
shr edx, 8
mov cl, byte [edx + 0x61df00]
mov edx, dword [ebp - 0x8c]
mov byte [edx + 2], cl
mov edx, dword [ebp - 0x8c]
movzx ecx, byte [edx + 1]
movzx ecx, word [ecx + ecx + 0x61db00]
mov edx, 0x100
sub edx, eax
imul ecx, edx
movzx edx, word [ebp - 0x4e]
imul edx, eax
add edx, ecx
shr edx, 8
mov cl, byte [edx + 0x61df00]
mov edx, dword [ebp - 0x8c]
mov byte [edx + 1], cl
mov edx, dword [ebp - 0x8c]
movzx ecx, byte [edx]
movzx ecx, word [ecx + ecx + 0x61db00]
mov edx, 0x100
sub edx, eax
imul ecx, edx
movzx edx, word [ebp - 0x4c]
imul edx, eax
lea eax, [ecx + edx]
shr eax, 8
mov dl, byte [eax + 0x61df00]
mov eax, dword [ebp - 0x8c]
mov byte [eax], dl
jmp 0x532088
mov eax, dword [ebp - 0x8c]
mov dl, byte [eax + 3]
not dl
and edx, 0xff
mov al, byte [ebp - 0x74]
not al
and eax, 0xff
imul edx, eax
mov eax, 0xfe01
sub eax, edx
mov dword [ebp - 0xcc], eax
shr eax, 1
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x8c]
movzx edx, byte [eax + 3]
mov al, byte [ebp - 0x74]
not al
and eax, 0xff
imul edx, eax
mov dword [ebp - 0xd8], edx
movzx eax, byte [ebp - 0x74]
shl eax, 8
movzx edx, byte [ebp - 0x74]
sub eax, edx
mov edi, eax
mov eax, dword [ebp - 0xcc]
shr eax, 7
add eax, dword [ebp - 0xcc]
shr eax, 8
mov dword [ebp - 0xdc], eax
shl dword [ebp - 0xdc], 0x18
mov esi, 0x61df00
mov ebx, 0x61db00
mov eax, dword [ebp - 0x8c]
movzx edx, byte [eax + 2]
movzx eax, word [ebx + edx*2]
imul eax, dword [ebp - 0xd8]
movzx edx, word [ebp - 0x50]
imul edx, edi
add eax, edx
add eax, dword [ebp - 0xd0]
xor edx, edx
div dword [ebp - 0xcc]
movzx eax, byte [esi + eax]
mov ecx, eax
shl ecx, 0x10
mov eax, dword [ebp - 0x8c]
movzx edx, byte [eax + 1]
movzx eax, word [ebx + edx*2]
imul eax, dword [ebp - 0xd8]
movzx edx, word [ebp - 0x4e]
imul edx, edi
add eax, edx
add eax, dword [ebp - 0xd0]
xor edx, edx
div dword [ebp - 0xcc]
movzx eax, byte [esi + eax]
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0x8c]
movzx eax, byte [edx]
movzx eax, word [ebx + eax*2]
imul eax, dword [ebp - 0xd8]
movzx edx, word [ebp - 0x4c]
imul edx, edi
add eax, edx
add eax, dword [ebp - 0xd0]
xor edx, edx
div dword [ebp - 0xcc]
movzx eax, byte [esi + eax]
or ecx, eax
or dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x8c]
mov dword [eax], edx
nop
jmp 0x532088
mov esi, dword [ebp - 0x8c]
cmp word [ebp - 0x4a], 0x100
jb 0x532088
nop
cmp word [ebp - 0x4a], 0xff00
jb 0x532050
movzx eax, word [ebp - 0x50]
mov al, byte [eax + 0x61df00]
mov byte [ebp - 0x52], al
movzx eax, word [ebp - 0x4e]
mov al, byte [eax + 0x61df00]
mov byte [ebp - 0x53], al
movzx eax, word [ebp - 0x4c]
mov al, byte [eax + 0x61df00]
mov byte [ebp - 0x54], al
movzx eax, word [ebp - 0x4a]
shr eax, 8
mov byte [ebp - 0x51], al
mov edx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x54]
mov eax, esi
call fcn.004029e0
jmp 0x532088
mov edx, dword [ebp - 0x9c]
lea eax, [edx - 1]
test eax, eax
jl 0x532088
mov ebx, eax
add ebx, 1
lea esi, [esi]
sub ebx, 1
movzx eax, word [ebp - 0x4a]
shr eax, 8
mov cl, al
lea edx, [ebp - 0x50]
mov eax, esi
call fcn.0053dd70
add esi, 4
test ebx, ebx
jg 0x532068
lea esi, [esi]
mov eax, dword [ebp - 0x9c]
lea edx, [eax - 1]
shl edx, 2
add dword [ebp - 0x8c], edx
mov esi, esi
add dword [ebp - 0xa4], 1
add dword [ebp - 0x8c], 4
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jle 0x531cb0
jmp 0x532af8
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x84], eax
add dword [ebp - 0xa0], 0x10
mov ecx, dword [ebp - 0x84]
cmp dword [ecx + 0xc], 0
je 0x53260c
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx]
xor edx, edx
div ebx
mov word [ebp - 0x50], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 4]
xor edx, edx
div ebx
mov word [ebp - 0x4e], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 8]
xor edx, edx
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x532135
mov byte [ebp - 0x74], 0xff
jmp 0x53213b
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x74], al
movzx eax, byte [ebp - 0x74]
mov edx, eax
shl edx, 8
add eax, edx
mov word [ebp - 0x4a], ax
mov dword [ebp - 0x9c], 1
jmp 0x53216d
add dword [ebp - 0xa4], 1
add dword [ebp - 0xa0], 0x10
add dword [ebp - 0x9c], 1
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jge 0x53219e
mov ebx, dword [ebp - 0xa0]
mov edx, ecx
mov eax, dword [ebx + 0xc]
cmp eax, dword [edx + 0xc]
jne 0x53219e
mov eax, dword [ebx + 8]
cmp eax, dword [edx + 8]
jne 0x53219e
mov eax, dword [ebx + 4]
cmp eax, dword [edx + 4]
jne 0x53219e
mov eax, dword [ebx]
cmp eax, dword [edx]
je 0x532158
cmp dword [ebp - 0x9c], 1
jne 0x5324bd
movzx eax, word [ebp - 0x50]
movzx eax, byte [eax + 0x61df00]
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ebp - 0x4e]
movzx eax, byte [eax + 0x61df00]
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ebp - 0x4c]
movzx eax, byte [eax + 0x61df00]
and edx, 0xffffff00
or edx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
mov dword [ebp - 0xb0], edx
mov eax, dword [ebp - 0x8c]
mov dl, byte [eax + 3]
test dl, dl
je 0x532230
sub dl, 0xff
je 0x532244
jmp 0x532334
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x8c]
mov dword [edx], eax
jmp 0x53260a
mov eax, dword [ebp - 0xb0]
shr eax, 0x18
and eax, 0xff
cmp eax, 0x80
jb 0x53225c
add eax, 1
mov ebx, 0x61db00
mov ecx, dword [ebp - 0x8c]
movzx edx, byte [ecx + 2]
movzx ecx, word [ebx + edx*2]
mov edx, 0x100
sub edx, eax
imul ecx, edx
mov edx, dword [ebp - 0xb0]
shr edx, 0x10
and edx, 0xff
movzx edx, word [ebx + edx*2]
imul edx, eax
add edx, ecx
shr edx, 8
mov cl, byte [edx + 0x61df00]
mov edx, dword [ebp - 0x8c]
mov byte [edx + 2], cl
mov ebx, 0x61db00
mov edx, dword [ebp - 0x8c]
movzx ecx, byte [edx + 1]
movzx ecx, word [ebx + ecx*2]
mov edx, 0x100
sub edx, eax
imul ecx, edx
mov edx, dword [ebp - 0xb0]
shr edx, 8
and edx, 0xff
movzx edx, word [ebx + edx*2]
imul edx, eax
add edx, ecx
shr edx, 8
mov cl, byte [edx + 0x61df00]
mov edx, dword [ebp - 0x8c]
mov byte [edx + 1], cl
mov ebx, 0x61db00
mov ecx, dword [ebp - 0x8c]
movzx edx, byte [ecx]
movzx ecx, word [ebx + edx*2]
mov edx, 0x100
sub edx, eax
imul ecx, edx
mov edx, dword [ebp - 0xb0]
and edx, 0xff
movzx edx, word [ebx + edx*2]
imul edx, eax
lea eax, [ecx + edx]
shr eax, 8
mov dl, byte [eax + 0x61df00]
mov eax, dword [ebp - 0x8c]
mov byte [eax], dl
jmp 0x53260a
mov eax, dword [ebp - 0x8c]
mov dl, byte [eax + 3]
not dl
and edx, 0xff
mov eax, dword [ebp - 0xb0]
shr eax, 0x18
and eax, 0xff
not al
and eax, 0xff
imul edx, eax
mov eax, 0xfe01
sub eax, edx
mov dword [ebp - 0xbc], eax
shr eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x8c]
movzx edx, byte [eax + 3]
mov eax, dword [ebp - 0xb0]
shr eax, 0x18
and eax, 0xff
not al
and eax, 0xff
imul edx, eax
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0xb0]
shr eax, 0x18
and eax, 0xff
movzx edx, al
shl edx, 8
and eax, 0xff
sub edx, eax
mov esi, edx
mov eax, dword [ebp - 0xbc]
shr eax, 7
add eax, dword [ebp - 0xbc]
shr eax, 8
mov dword [ebp - 0xc4], eax
shl dword [ebp - 0xc4], 0x18
mov edi, 0x61df00
mov ebx, 0x61db00
mov eax, dword [ebp - 0x8c]
movzx edx, byte [eax + 2]
movzx edx, word [ebx + edx*2]
imul edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb0]
shr eax, 0x10
and eax, 0xff
movzx eax, word [ebx + eax*2]
imul eax, esi
add eax, edx
add eax, dword [ebp - 0xc0]
xor edx, edx
div dword [ebp - 0xbc]
movzx eax, byte [edi + eax]
mov ecx, eax
shl ecx, 0x10
mov eax, dword [ebp - 0x8c]
movzx edx, byte [eax + 1]
movzx edx, word [ebx + edx*2]
imul edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb0]
shr eax, 8
and eax, 0xff
movzx eax, word [ebx + eax*2]
imul eax, esi
add eax, edx
add eax, dword [ebp - 0xc0]
xor edx, edx
div dword [ebp - 0xbc]
movzx eax, byte [edi + eax]
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0x8c]
movzx eax, byte [edx]
movzx edx, word [ebx + eax*2]
imul edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb0]
and eax, 0xff
movzx eax, word [ebx + eax*2]
imul eax, esi
add eax, edx
add eax, dword [ebp - 0xc0]
xor edx, edx
div dword [ebp - 0xbc]
movzx eax, byte [edi + eax]
or ecx, eax
or dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x8c]
mov dword [eax], edx
mov esi, esi
jmp 0x53260a
movzx eax, word [ebp - 0x50]
movzx eax, byte [eax + 0x61df00]
shl eax, 0x10
and eax, 0xff0000
and edx, 0xff00ffff
or edx, eax
movzx eax, word [ebp - 0x4e]
movzx eax, byte [eax + 0x61df00]
shl eax, 8
and eax, 0xff00
and edx, 0xffff00ff
or edx, eax
movzx eax, word [ebp - 0x4c]
movzx eax, byte [eax + 0x61df00]
and edx, 0xffffff00
or edx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and edx, 0xffffff
or edx, eax
mov esi, edx
mov edi, dword [ebp - 0x8c]
mov eax, esi
shr eax, 0x18
and eax, 0xff
test al, 0xff
je 0x5325f8
mov eax, esi
shr eax, 0x18
and eax, 0xff
cmp al, 0xff
jne 0x532560
mov edx, dword [ebp - 0x9c]
mov ecx, esi
mov eax, edi
call fcn.004029e0
jmp 0x5325f8
mov eax, esi
shr eax, 0x10
and eax, 0xff
mov ax, word [eax + eax + 0x61db00]
mov word [ebp - 0x60], ax
mov eax, esi
shr eax, 8
and eax, 0xff
mov ax, word [eax + eax + 0x61db00]
mov word [ebp - 0x5e], ax
mov eax, esi
and eax, 0xff
mov ax, word [eax + eax + 0x61db00]
mov word [ebp - 0x5c], ax
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov edx, eax
shl edx, 8
add eax, edx
mov word [ebp - 0x5a], ax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x9c]
lea eax, [edx - 1]
test eax, eax
jl 0x5325f8
mov ebx, eax
add ebx, 1
lea esi, [esi]
sub ebx, 1
mov eax, esi
shr eax, 0x18
and eax, 0xff
mov cl, al
lea edx, [ebp - 0x58]
mov eax, edi
call fcn.0053dd70
add edi, 4
test ebx, ebx
jg 0x5325d8
mov edx, dword [ebp - 0x9c]
lea eax, [edx - 1]
shl eax, 2
add dword [ebp - 0x8c], eax
mov esi, esi
add dword [ebp - 0xa4], 1
add dword [ebp - 0x8c], 4
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jle 0x5320c8
jmp 0x532af8
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x84], eax
add dword [ebp - 0xa0], 0x10
mov ecx, dword [ebp - 0x84]
cmp dword [ecx + 0xc], 0
je 0x5327b0
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx]
xor edx, edx
div ebx
mov word [ebp - 0x50], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 4]
xor edx, edx
div ebx
mov word [ebp - 0x4e], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 8]
xor edx, edx
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x5326a5
mov byte [ebp - 0x74], 0xff
jmp 0x5326ab
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x74], al
movzx eax, byte [ebp - 0x74]
mov edx, eax
shl eax, 8
add eax, edx
mov word [ebp - 0x4a], ax
mov dword [ebp - 0x9c], 1
jmp 0x5326dd
add dword [ebp - 0xa4], 1
add dword [ebp - 0xa0], 0x10
add dword [ebp - 0x9c], 1
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jge 0x53270e
mov ebx, dword [ebp - 0xa0]
mov edx, ecx
mov eax, dword [ebx + 0xc]
cmp eax, dword [edx + 0xc]
jne 0x53270e
mov eax, dword [ebx + 8]
cmp eax, dword [edx + 8]
jne 0x53270e
mov eax, dword [ebx + 4]
cmp eax, dword [edx + 4]
jne 0x53270e
mov eax, dword [ebx]
cmp eax, dword [edx]
je 0x5326c8
mov edi, dword [ebp - 0x9c]
movzx eax, word [ebp - 0x50]
movzx eax, byte [eax + 0x61df00]
shl eax, 0x10
and eax, 0xff0000
and ecx, 0xff00ffff
or ecx, eax
movzx eax, word [ebp - 0x4e]
movzx eax, byte [eax + 0x61df00]
shl eax, 8
and eax, 0xff00
and ecx, 0xffff00ff
or ecx, eax
movzx eax, word [ebp - 0x4c]
movzx eax, byte [eax + 0x61df00]
and ecx, 0xffffff00
or ecx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and ecx, 0xffffff
or ecx, eax
mov ebx, dword [ebp - 0x8c]
jmp 0x532798
mov eax, ebx
mov edx, dword [eax]
mov esi, ecx
xor esi, edx
mov dword [eax], esi
add ebx, 4
sub edi, 1
test edi, edi
jg 0x532788
mov eax, dword [ebp - 0x9c]
lea edx, [eax - 1]
shl edx, 2
add dword [ebp - 0x8c], edx
mov esi, esi
add dword [ebp - 0xa4], 1
add dword [ebp - 0x8c], 4
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jle 0x532638
jmp 0x532af8
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x84], eax
add dword [ebp - 0xa0], 0x10
mov ecx, dword [ebp - 0x84]
cmp dword [ecx + 0xc], 0
je 0x532940
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx]
xor edx, edx
div ebx
mov word [ebp - 0x50], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 4]
xor edx, edx
div ebx
mov word [ebp - 0x4e], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 8]
xor edx, edx
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x53284d
mov byte [ebp - 0x74], 0xff
jmp 0x532853
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x74], al
movzx eax, byte [ebp - 0x74]
mov edx, eax
shl edx, 8
add eax, edx
mov word [ebp - 0x4a], ax
mov dword [ebp - 0x9c], 1
jmp 0x532885
add dword [ebp - 0xa4], 1
add dword [ebp - 0xa0], 0x10
add dword [ebp - 0x9c], 1
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jge 0x5328b6
mov ebx, dword [ebp - 0xa0]
mov edx, ecx
mov eax, dword [ebx + 0xc]
cmp eax, dword [edx + 0xc]
jne 0x5328b6
mov eax, dword [ebx + 8]
cmp eax, dword [edx + 8]
jne 0x5328b6
mov eax, dword [ebx + 4]
cmp eax, dword [edx + 4]
jne 0x5328b6
mov eax, dword [ebx]
cmp eax, dword [edx]
je 0x532870
movzx eax, word [ebp - 0x50]
movzx eax, byte [eax + 0x61df00]
shl eax, 0x10
and eax, 0xff0000
and ecx, 0xff00ffff
or ecx, eax
movzx eax, word [ebp - 0x4e]
movzx eax, byte [eax + 0x61df00]
shl eax, 8
and eax, 0xff00
and ecx, 0xffff00ff
or ecx, eax
movzx eax, word [ebp - 0x4c]
movzx eax, byte [eax + 0x61df00]
and ecx, 0xffffff00
or ecx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and ecx, 0xffffff
or ecx, eax
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x9c]
call fcn.004029e0
mov eax, dword [ebp - 0x9c]
lea edx, [eax - 1]
shl edx, 2
add dword [ebp - 0x8c], edx
mov esi, esi
add dword [ebp - 0xa4], 1
add dword [ebp - 0x8c], 4
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jle 0x5327e0
jmp 0x532af8
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x84], eax
add dword [ebp - 0xa0], 0x10
mov ecx, dword [ebp - 0x84]
cmp dword [ecx + 0xc], 0xff
jb 0x532ad8
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx]
xor edx, edx
div ebx
mov word [ebp - 0x50], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 4]
xor edx, edx
div ebx
mov word [ebp - 0x4e], ax
mov edx, ecx
mov ebx, dword [edx + 0xc]
mov eax, ebx
shr eax, 1
add eax, dword [edx + 8]
xor edx, edx
div ebx
mov word [ebp - 0x4c], ax
cmp dword [ecx + 0xc], 0xff
jbe 0x5329e0
mov byte [ebp - 0x74], 0xff
jmp 0x5329e6
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x74], al
movzx eax, byte [ebp - 0x74]
mov edx, eax
shl eax, 8
add eax, edx
mov word [ebp - 0x4a], ax
mov dword [ebp - 0x9c], 1
jmp 0x532a1d
add dword [ebp - 0xa4], 1
add dword [ebp - 0xa0], 0x10
add dword [ebp - 0x9c], 1
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jge 0x532a4e
mov ebx, dword [ebp - 0xa0]
mov edx, ecx
mov eax, dword [ebx + 0xc]
cmp eax, dword [edx + 0xc]
jne 0x532a4e
mov eax, dword [ebx + 8]
cmp eax, dword [edx + 8]
jne 0x532a4e
mov eax, dword [ebx + 4]
cmp eax, dword [edx + 4]
jne 0x532a4e
mov eax, dword [ebx]
cmp eax, dword [edx]
je 0x532a08
movzx eax, word [ebp - 0x50]
movzx eax, byte [eax + 0x61df00]
shl eax, 0x10
and eax, 0xff0000
and ecx, 0xff00ffff
or ecx, eax
movzx eax, word [ebp - 0x4e]
movzx eax, byte [eax + 0x61df00]
shl eax, 8
and eax, 0xff00
and ecx, 0xffff00ff
or ecx, eax
movzx eax, word [ebp - 0x4c]
movzx eax, byte [eax + 0x61df00]
and ecx, 0xffffff00
or ecx, eax
movzx eax, word [ebp - 0x4a]
shr eax, 8
and eax, 0xff
shl eax, 0x18
and eax, 0xff000000
and ecx, 0xffffff
or ecx, eax
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x9c]
call fcn.004029e0
mov eax, dword [ebp - 0x9c]
lea edx, [eax - 1]
shl edx, 2
add dword [ebp - 0x8c], edx
mov esi, esi
add dword [ebp - 0xa4], 1
add dword [ebp - 0x8c], 4
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x28]
jle 0x532970
lea esi, [esi]
mov eax, dword [ebp - 0x78]
cmp eax, dword [ebp - 0x98]
jg 0x531490
nop
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
sub eax, 1
mov esi, eax
test esi, esi
jl 0x532b64
mov dword [ebp - 0x6c], 0xffffffff
mov esi, esi
add dword [ebp - 0x6c], 1
mov edx, dword [ebp - 8]
imul eax, dword [ebp - 0x6c], 0x14
mov eax, dword [edx + eax]
call fcn.0040ebc0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
imul eax, dword [ebp - 0x6c], 0x30
mov eax, dword [edx + eax]
mov ecx, dword [ebp - 8]
imul edx, dword [ebp - 0x6c], 0x14
lea edx, [ecx + edx + 0x10]
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx + 8]
imul ecx, dword [ebp - 0x6c], 0x30
mov ecx, dword [ebx + ecx]
mov ecx, dword [ecx]
call dword [ecx + 0x78]
cmp esi, dword [ebp - 0x6c]
jg 0x532b20
mov esi, esi
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov ecx, dword [edx]
call dword [ecx + 0x12c]
xor edx, edx
pop eax
add esp, 0xc
mov dword fs:[edx], eax
mov eax, ebp
call fcn.00530f80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret