Function at 0x1f0e3
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [ebp + 0x10]
or byte [ebp - 0x28], 0xff
or byte [ebp - 5], 0xff
or byte [ebp - 4], 0xff
or dword [ebp - 0x48], 0xffffffff
push ebx
mov ebx, dword [eax + 0x18]
push esi
mov esi, dword [ebp + 0xc]
mov cx, word [esi + 0x70]
or byte [ebp + 0xf], 0xff
push edi
mov edi, dword [eax + 0x28]
add edi, dword [esi + 4]
mov word [ebp - 0x18], cx
mov ecx, dword [esi + 0x128]
mov dword [ebp - 0x2c], ecx
xor ecx, ecx
and byte [ebp - 2], cl
mov dword [edi + 0x24], ecx
cmp dword [eax + 0x10], 0x1c
mov dword [ebp - 0x38], edi
mov byte [ebp - 3], 1
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x20], ecx
jb 0x2029b
push 8
lea eax, [ebx + 4]
push 0x1f0c2
push eax
mov dword [ebp - 0x30], eax
call sub.ntoskrnl.exe_RtlCompareMemory
cmp eax, 8
jne 0x1f176
mov edi, dword [ebp + 0x10]
and dword [ebx + 0x14], 0
push edi
push esi
push dword [ebp + 8]
call fcn.0001bb9c
mov byte [edi + 3], al
jmp 0x1f4b2
push 8
push 0x1f0ce
push dword [ebp - 0x30]
call sub.ntoskrnl.exe_RtlCompareMemory
cmp eax, 8
jne 0x2029b
mov ecx, dword [ebx + 0x10]
xor edx, edx
mov eax, 0x4202c
cmp ecx, eax
mov dword [ebx + 0x14], edx
ja 0x2024f
je 0x201b5
sub ecx, 0x42000
je 0x20191
push 4
pop eax
sub ecx, eax
je 0x1fa4d
sub ecx, eax
je 0x1f7bd
sub ecx, eax
je 0x1f422
sub ecx, eax
je 0x1f29e
sub ecx, 0x14
je 0x1f1ff
sub ecx, eax
jne 0x20282
cmp dword [ebx + 0x18], eax
jb 0x2047d
push edx
push dword [ebx + 0x1c]
push dword [ebp + 8]
call fcn.0001208c
jmp 0x1f4a9
cmp dword [ebx + 0x18], eax
jb 0x2047d
mov di, word [ebx + 0x1e]
xor ecx, ecx
mov cx, word [ebx + 0x1c]
push 2
pop edx
cmp di, dx
mov dword [ebp + 8], ecx
ja 0x1f296
movzx eax, di
movzx ecx, cx
add ecx, eax
cmp ecx, edx
jg 0x1f296
mov ecx, eax
imul ecx, ecx, 0x2c
add ecx, 4
cmp ecx, dword [ebx + 0x18]
ja 0x2047d
lea ecx, [eax - 1]
movzx eax, word [ebp + 8]
cmp eax, ecx
jg 0x1f4a2
cmp word [ebp + 8], 0
jne 0x1f25a
movzx di, byte [esi + 0x80]
jmp 0x1f25d
sub edi, dword [ebp + 8]
cmp byte [esi + 0x80], 0
jne 0x1f268
xor edi, edi
mov word [ebx + 0x1e], di
add ebx, 0x20
jmp 0x1f28c
push dword [ebp - 0x2c]
movzx eax, word [ebp + 8]
push eax
push ebx
push esi
call fcn.000184bc
inc dword [ebp + 8]
add ebx, 0x2c
add edi, 0xffff
test di, di
jne 0x1f271
jmp 0x1f4a9
mov dword [ebx + 0x14], edx
jmp 0x1f4a9
cmp dword [ebx + 0x18], 2
jb 0x2047d
mov al, byte [ebx + 0x1c]
mov ecx, dword [ebp - 0x2c]
mov dl, byte [ebx + 0x1d]
mov byte [ebp - 0x28], al
movzx eax, al
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*8]
mov al, byte [ecx + 0xc]
cmp al, 3
mov byte [ebp + 0xf], dl
jne 0x1f2e8
mov eax, dword [esi + 0x134]
mov dword [ebp - 0x2c], eax
mov al, dl
shr al, 1
mov byte [ebp - 5], al
movzx eax, dl
cdq
push 2
pop ecx
idiv ecx
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 5]
jmp 0x1f2fc
cmp al, 2
jne 0x1f59d
mov eax, dword [esi + 0x138]
mov cl, byte [ecx + 0xb]
mov dl, byte [ebp + 0xf]
movzx edx, dl
add eax, edx
mov edx, dword [esi + 0x13c]
movzx ecx, cl
mov cl, byte [eax + ecx*4]
movzx eax, cl
mov byte [ebp - 0x20], cl
movzx cx, cl
cmp cx, word [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [edx + eax*4]
jae 0x1f32f
mov ecx, dword [eax + 0x10]
cmp byte [ecx + 0x128], 4
jne 0x1f33b
mov dword [ebx + 0x14], 0xd
jmp 0x1f4a9
movzx ecx, byte [eax + 0x2d]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, dword [esi + 0x120]
mov dl, byte [ecx + 0x1c]
cmp dl, 2
mov byte [ebp - 0xa], dl
jne 0x1f362
mov edx, dword [eax + 0x10]
cmp byte [edx + 0x128], 1
je 0x1f374
cmp byte [ebp - 0xa], 3
jne 0x1f380
mov edx, dword [eax + 0x10]
cmp byte [edx + 0x128], 1
jne 0x1f380
mov dword [ebx + 0x14], 0x12
jmp 0x1f4a9
cmp byte [esi + 0x117], 0
jne 0x20742
cmp byte [esi + 0x118], 0
jne 0x20742
mov edi, dword [esi + 0x138]
mov byte [ecx + 0x1c], 2
movzx edx, byte [eax + 0x2f]
movzx ebx, byte [eax + 0x2d]
xor edx, 1
add edi, edx
mov dl, byte [edi + ebx*4]
and byte [ecx + 0x1f], 0
mov byte [ecx + 0x1e], dl
test byte [eax + 0x2a], 1
je 0x1f3d6
movzx edx, byte [eax + 0x2e]
movzx ecx, byte [eax + 0x2c]
lea ecx, [edx + ecx*4]
mov edx, dword [esi + 0x134]
or byte [ecx + edx], 0xff
movzx ecx, byte [eax + 0x2d]
movzx eax, byte [eax + 0x2f]
push esi
push dword [ebp - 0x24]
lea eax, [eax + ecx*4]
mov ecx, dword [esi + 0x138]
push dword [ebp + 8]
or byte [eax + ecx], 0xff
call fcn.00019a74
mov al, byte [ebp - 0x28]
mov byte [ebp - 0xc], al
mov al, byte [ebp + 0xf]
push 1
mov byte [ebp - 0xb], al
mov al, byte [ebp - 0x20]
push 3
mov byte [ebp - 0xa], al
lea eax, [ebp - 0xc]
push eax
push 0
push 5
push dword [ebp + 8]
call fcn.000217e0
jmp 0x1f4a9
push 2
pop edi
cmp dword [ebx + 0x18], edi
jb 0x2047d
mov al, byte [ebx + 0x1c]
mov cl, byte [ebx + 0x1d]
mov byte [ebp - 0x28], al
movzx eax, al
lea eax, [eax + eax*2]
shl eax, 3
mov byte [ebp - 0x20], cl
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
add eax, ecx
mov cl, byte [eax + 0xc]
cmp cl, 3
jne 0x1f4b9
mov edi, dword [esi + 0x120]
xor dl, dl
movzx eax, dl
lea eax, [eax + eax*2]
shl eax, 4
cmp byte [eax + edi + 0x1c], 2
je 0x1f47a
inc dl
cmp dl, 2
jb 0x1f45b
mov cl, byte [ebp + 0xf]
mov al, byte [ebp - 5]
jmp 0x1f49d
movzx ecx, dl
lea ecx, [ecx + ecx*2]
shl ecx, 4
mov cl, byte [ecx + edi + 0x1e]
movzx di, cl
cmp di, word [ebp - 0x18]
mov al, dl
mov byte [ebp + 0xf], cl
jb 0x1f49d
mov dword [ebx + 0x14], 2
cmp dl, 2
jb 0x1f4eb
mov dword [ebx + 0x14], 2
mov al, byte [ebp - 3]
mov ecx, dword [ebp + 0x10]
mov byte [ecx + 3], al
pop edi
pop esi
pop ebx
leave
ret 0xc
cmp cl, 2
jne 0x2046f
mov al, byte [eax + 0xb]
mov edx, dword [esi + 0x120]
movzx ecx, al
lea ecx, [ecx + ecx*2]
shl ecx, 4
mov cl, byte [ecx + edx + 0x1e]
movzx dx, cl
cmp dx, word [ebp - 0x18]
mov byte [ebp + 0xf], cl
jae 0x2046f
jmp 0x1f4ee
push 2
pop edi
cmp al, 0xff
je 0x2046f
cmp cl, 0xff
je 0x2046f
mov edx, dword [esi + 0x120]
movzx eax, al
lea eax, [eax + eax*2]
shl eax, 4
cmp byte [edx + eax + 0x1c], 2
mov dword [ebp - 0x40], eax
jne 0x2046f
cmp cl, byte [ebp - 0x20]
je 0x1f59d
cmp byte [esi + 0x117], 0
movzx edx, byte [ebp - 0x20]
mov eax, dword [esi + 0x13c]
mov edi, dword [eax + edx*4]
movzx ecx, cl
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x1c], eax
jne 0x1f79d
cmp byte [esi + 0x118], 0
jne 0x1f79d
mov ecx, dword [esi + 0x128]
mov dl, byte [edi + 0x2a]
test dl, 2
mov dword [ebp - 0x38], ecx
mov ecx, dword [edi + 0x10]
mov byte [ebp - 5], dl
je 0x1f586
mov cl, byte [ecx + 0x128]
cmp cl, 1
je 0x1f59d
cmp cl, 2
je 0x1f59d
cmp cl, 3
je 0x1f59d
mov cl, byte [ebp - 5]
and cl, 3
cmp cl, 1
je 0x1f59d
test byte [ebp - 5], 7
jne 0x1f5a9
test byte [edi + 0x29], 0x80
je 0x1f5a9
mov dword [ebx + 0x14], 0xe
jmp 0x1f4a9
mov edx, dword [edi]
lea ecx, [eax + 0x20]
mov dword [ebp - 0x2c], edx
mov edx, dword [edx + 0x4c]
cmp edx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
ja 0x1f5ea
jb 0x1f5c8
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + 0x48]
cmp edx, dword [ecx]
ja 0x1f5ea
mov eax, dword [ebp - 0x2c]
add eax, 0xffffc048
push eax
call fcn.000187aa
push dword [ebp - 0x34]
call fcn.000187aa
mov dword [ebx + 0x14], 0x11
jmp 0x1f4a9
or byte [edi + 0x28], 1
mov edx, dword [ecx]
mov dword [edi + 0x20], edx
mov ecx, dword [ecx + 4]
mov dword [edi + 0x24], ecx
mov cl, byte [eax + 0x2a]
mov byte [edi + 0x2a], cl
mov cl, byte [eax + 0x2b]
mov byte [edi + 0x2b], cl
mov cl, byte [eax + 0x2d]
mov byte [edi + 0x2d], cl
mov cl, byte [eax + 0x2f]
xor cl, 1
mov byte [edi + 0x2f], cl
mov cl, byte [eax + 0x30]
mov byte [edi + 0x30], cl
mov cl, byte [edi + 0x2a]
and cl, 3
cmp cl, 3
jne 0x1f633
mov cl, byte [eax + 0x2e]
mov byte [edi + 0x2e], cl
mov al, byte [eax + 0x2c]
xor al, 1
mov byte [edi + 0x2c], al
mov al, byte [ebp - 0x28]
mov bl, byte [ebp - 0x20]
push 1
push 2
mov byte [ebp - 0xc], al
lea eax, [ebp - 0xc]
push eax
push 0
push 4
push dword [ebp + 8]
mov byte [ebp - 0xb], bl
call fcn.000217e0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
mov byte [eax + ecx + 8], 2
movzx eax, byte [edi + 0x2d]
mov ecx, dword [esi + 0x138]
lea eax, [ecx + eax*4]
movzx ecx, byte [edi + 0x2f]
mov byte [eax + ecx], bl
test byte [edi + 0x2a], 1
je 0x1f68c
movzx ecx, byte [edi + 0x2e]
movzx eax, byte [edi + 0x2c]
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 0x134]
mov byte [eax + ecx], bl
mov al, byte [ebp - 0x28]
mov byte [ebp - 0x2c], al
mov al, byte [edi + 0x2f]
mov byte [ebp - 0x2b], al
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0x2a]
and al, 3
cmp al, 3
jne 0x1f6b0
mov al, byte [edi + 0x2c]
imul byte [esi + 3]
add al, byte [edi + 0x2e]
mov byte [ebp - 0x2b], al
push 1
push 4
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 0x29], bl
xor ebx, ebx
push ebx
push 3
push dword [ebp + 8]
mov byte [ebp - 0x2a], 5
call fcn.000217e0
mov edi, dword [esi + 0x120]
add edi, dword [ebp - 0x40]
mov al, byte [ebp + 0xf]
and byte [edi + 0x26], bl
and byte [edi + 0x1f], bl
mov byte [edi + 0x1e], al
mov eax, dword [ebp - 0x1c]
mov byte [edi + 0x25], 1
mov byte [edi + 0x24], 1
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
mov byte [edi + 0x1c], 3
push 0
mov byte [esi + 0x4c], 1
mov ebx, dword [eax + 0x10]
inc dword [ebx + 0x124]
push 0
push ebx
call fcn.000186e0
push 8
push 0
push dword [ebp - 0x44]
mov byte [edi + 0x20], 2
push esi
push dword [ebp + 8]
call fcn.00019004
mov eax, dword [ebp - 0x18]
mov edi, dword [eax + 0x10]
push 0x140
push ebx
push edi
call fcn.00013c90
mov eax, dword [ebp - 0x18]
mov byte [edi + 0x128], 2
mov cl, byte [eax + 0x2e]
push 8
push 0
push dword [ebp - 0x24]
mov byte [edi + 0x116], cl
mov cl, byte [eax + 0x2c]
mov byte [edi + 0x119], cl
mov al, byte [eax + 0x2d]
push esi
push dword [ebp + 8]
mov byte [edi + 0x11b], al
mov al, byte [ebp - 0x20]
mov byte [edi + 0x12b], al
call fcn.00019004
cmp byte [esi + 0x50], 0
jne 0x1f4a9
push 0x1ec5e
push dword [esi + 0x74]
mov byte [esi + 0x50], 1
push dword [ebp + 8]
call fcn.00013cd6
mov dword [esi + 0x78], eax
jmp 0x1f4a9
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x10]
add esi, 0x3c
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 4]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [ecx], eax
mov dword [esi + 4], eax
xor al, al
jmp 0x1f4b2
cmp dword [ebx + 0x18], eax
jb 0x2047d
mov cl, byte [ebx + 0x1c]
cmp cl, 2
jae 0x204aa
mov edx, dword [ebp - 0x2c]
movzx eax, cl
lea eax, [eax + eax*2]
lea edi, [edx + eax*8]
cmp byte [edi + 0x10], 0
mov dword [ebp - 0x28], edi
je 0x204aa
mov al, byte [edi + 8]
mov bl, byte [edi + 0xc]
push 1
push 2
mov byte [ebp - 1], al
lea eax, [ebp - 0x10]
push eax
push 0
push 9
push dword [ebp + 8]
mov byte [ebp - 0x10], cl
mov byte [ebp - 0xf], bl
call fcn.000217e0
movzx eax, bl
dec eax
je 0x1f999
dec eax
je 0x1f8cd
dec eax
jne 0x1fa42
mov ecx, dword [esi + 0x134]
lea eax, [esi + 0x120]
mov edx, dword [eax]
and byte [edx + 0x27], 0
mov edx, dword [eax]
and byte [edx + 0x57], 0
mov edx, dword [eax]
or byte [edx + 0x1c], 0xff
mov eax, dword [eax]
or byte [eax + 0x4c], 0xff
and byte [ebp - 2], 0
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x30], 8
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
movzx cx, al
cmp cx, word [ebp - 0x18]
jae 0x1f8a5
movzx edi, al
mov eax, dword [esi + 0x13c]
mov eax, dword [eax + edi*4]
mov ebx, dword [eax + 0x10]
push 0x200
push ebx
call fcn.00013cb8
push 0x8008
push dword [ebp + 0x10]
mov al, 1
mov ecx, edi
push edi
shl al, cl
push esi
push dword [ebp + 8]
mov word [ebx + 0x13e], 0x5555
or byte [ebp - 2], al
call fcn.00019004
inc dword [ebp + 0xc]
dec dword [ebp - 0x30]
jne 0x1f858
mov edi, dword [esi + 0x134]
or eax, 0xffffffff
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov esi, dword [esi + 0x138]
or eax, 0xffffffff
mov edi, esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x28]
jmp 0x1fa42
mov eax, dword [esi + 0x138]
movzx ebx, byte [edi + 0xb]
and byte [ebp - 2], 0
mov dword [ebp - 0x2c], eax
lea ecx, [esi + 0x120]
mov edx, dword [ecx]
lea eax, [ebx + ebx*2]
shl eax, 4
and byte [eax + edx + 0x27], 0
mov ecx, dword [ecx]
or byte [eax + ecx + 0x1c], 0xff
cmp byte [ebp - 1], 0
jbe 0x1f96c
mov eax, dword [ebp - 0x2c]
lea eax, [eax + ebx*4]
mov dword [ebp + 0xc], eax
movzx eax, byte [ebp - 1]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0xc]
mov al, byte [eax]
movzx cx, al
cmp cx, word [ebp - 0x18]
jae 0x1f964
movzx edi, al
mov eax, dword [esi + 0x13c]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x10]
push 0x200
push eax
mov dword [ebp - 0x44], eax
call fcn.00013cb8
mov eax, dword [ebp - 0x44]
push 0x8008
push dword [ebp + 0x10]
mov word [eax + 0x13e], 0x5555
mov al, 1
mov ecx, edi
push edi
shl al, cl
push esi
push dword [ebp + 8]
or byte [ebp - 2], al
call fcn.00019004
mov edi, dword [ebp - 0x28]
inc dword [ebp + 0xc]
dec dword [ebp - 0x30]
jne 0x1f90e
xor al, al
cmp word [ebp - 0x18], 0
jbe 0x1fa42
shl ebx, 2
mov edx, dword [ebp - 0x2c]
movzx ecx, al
add ecx, ebx
or byte [ecx + edx], 0xff
inc al
movzx cx, al
cmp cx, word [ebp - 0x18]
jb 0x1f97c
jmp 0x1fa42
mov cl, byte [edi + 0xa]
mov eax, dword [esi + 0x134]
and byte [ebp - 2], 0
cmp byte [ebp - 1], 0
mov byte [ebp + 0xf], cl
mov dword [ebp - 0x2c], eax
jbe 0x1fa1d
movzx ecx, cl
lea ecx, [eax + ecx*4]
mov dword [ebp - 0x24], ecx
movzx ecx, byte [ebp - 1]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x24]
mov cl, byte [ecx]
movzx dx, cl
cmp dx, word [ebp - 0x18]
jae 0x1fa15
mov eax, dword [esi + 0x13c]
movzx ebx, cl
mov eax, dword [eax + ebx*4]
mov edi, dword [eax + 0x10]
push 0x200
push edi
call fcn.00013cb8
push 0x8008
push dword [ebp + 0x10]
mov al, 1
mov ecx, ebx
push ebx
shl al, cl
push esi
push dword [ebp + 8]
mov word [edi + 0x13e], 0x5555
or byte [ebp - 2], al
call fcn.00019004
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
inc dword [ebp - 0x24]
dec dword [ebp - 0x30]
jne 0x1f9c2
xor dl, dl
cmp word [ebp - 0x18], 0
jbe 0x1fa42
movzx ecx, byte [ebp + 0xf]
shl ecx, 2
movzx esi, dl
add esi, ecx
or byte [esi + eax], 0xff
inc dl
movzx si, dl
cmp si, word [ebp - 0x18]
jb 0x1fa2d
mov al, byte [ebp - 2]
mov byte [edi + 0xf], al
jmp 0x2034c
cmp dword [ebx + 0x18], 0x1e
jb 0x2047d
mov al, byte [ebx + 0x1c]
cmp al, 3
mov dl, byte [ebx + 0x1e]
mov cl, byte [ebx + 0x1f]
mov byte [ebp - 5], al
mov byte [ebp - 1], dl
mov byte [ebp - 0xa], cl
jne 0x1fa72
cmp dl, 4
jmp 0x1fa78
cmp al, 2
jne 0x1fa7f
cmp dl, al
je 0x1fa9a
jmp 0x1f4a2
cmp al, 1
jne 0x1fa9a
cmp dl, 2
jb 0x1f4a2
movzx ax, dl
cmp ax, word [ebp - 0x18]
ja 0x1f4a2
mov edi, dword [esi + 0x128]
xor cl, cl
movzx eax, cl
lea eax, [eax + eax*2]
cmp byte [edi + eax*8 + 0x10], 0
je 0x1fab8
inc cl
cmp cl, 2
jb 0x1faa2
jmp 0x1fabb
mov byte [ebp - 0x28], cl
cmp cl, 2
jae 0x1f4a2
movzx eax, byte [ebp - 0x28]
and byte [ebp + 0xf], 0
lea eax, [eax + eax*2]
shl eax, 3
add edi, eax
test dl, dl
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x34], eax
jbe 0x1fc00
movzx eax, byte [ebp + 0xf]
mov cl, byte [eax + ebx + 0x3a]
movzx ax, cl
cmp ax, word [ebp - 0x18]
ja 0x1fbea
mov edx, dword [esi + 0x13c]
movzx eax, cl
mov dword [ebp - 0x24], eax
mov eax, dword [edx + eax*4]
test byte [eax + 0x29], 0x80
mov dword [ebp - 0x1c], eax
je 0x1fbea
mov dl, byte [eax + 0x2a]
test dl, dl
je 0x1fba4
cmp dl, 4
jne 0x1fb89
and byte [ebp - 2], 0
cmp byte [esi + 0x116], 0
je 0x1fb50
movzx eax, byte [ebp - 2]
mov edx, dword [esi + 0x12c]
lea eax, [eax + eax*2]
cmp byte [edx + eax*4 + 2], cl
je 0x1fb50
inc byte [ebp - 2]
cmp byte [ebp - 2], 4
jb 0x1fb2b
cmp byte [ebp - 2], 4
jae 0x1fbf1
movzx eax, byte [ebp - 2]
lea ecx, [esi + 0x12c]
mov edx, dword [ecx]
lea eax, [eax + eax*2]
shl eax, 2
and byte [eax + edx], 0
mov edx, dword [ecx]
and byte [eax + edx + 1], 0
mov ecx, dword [ecx]
or byte [eax + ecx + 2], 0xff
dec byte [esi + 0x116]
mov eax, dword [ebp - 0x1c]
jmp 0x1fba4
mov cl, byte [eax + 0x30]
cmp cl, 2
jae 0x1fba4
mov edx, dword [esi + 0x128]
movzx ecx, cl
lea ecx, [ecx + ecx*2]
cmp byte [edx + ecx*8 + 0x10], 0
jne 0x1fbea
mov ecx, dword [ebp - 0x24]
xor edx, edx
inc edx
shl edx, cl
movzx ecx, word [ebp - 0x20]
test ecx, edx
jne 0x1fbea
mov ecx, dword [eax]
mov eax, dword [ecx + 0x48]
mov ecx, dword [ecx + 0x4c]
cmp ecx, dword [ebp - 0x44]
ja 0x1fbce
jb 0x1fbc8
cmp eax, dword [ebp - 0x48]
jae 0x1fbce
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x24]
xor eax, eax
inc eax
shl eax, cl
or dword [ebp - 0x20], eax
inc byte [ebp + 0xf]
mov al, byte [ebp + 0xf]
cmp al, byte [ebp - 1]
jb 0x1fae5
jmp 0x1fbf1
mov dword [ebx + 0x14], 0xd
mov al, byte [ebp + 0xf]
cmp al, byte [ebp - 1]
jb 0x1f4a9
mov dl, byte [ebp - 1]
add dword [ebp - 0x48], 0xfffff800
adc dword [ebp - 0x44], 0xffffffff
and byte [ebp + 0xf], 0
test dl, dl
jbe 0x1fc4a
mov edx, dword [esi + 0x130]
movzx eax, byte [ebp + 0xf]
mov cl, byte [eax + ebx + 0x3a]
movzx eax, cl
lea eax, [eax + eax*2]
cmp byte [edx + eax*4 + 4], 0
je 0x1fc3b
inc byte [ebp + 0xf]
mov al, byte [ebp + 0xf]
cmp al, byte [ebp - 1]
jb 0x1fc19
jmp 0x1fc42
mov byte [ebp - 4], cl
mov byte [edi + 0x11], 1
mov al, byte [ebp - 1]
cmp byte [ebp + 0xf], al
jb 0x1fc7b
xor dl, dl
cmp word [ebp - 0x18], 0
jbe 0x1fc7b
mov ecx, dword [esi + 0x130]
movzx eax, dl
lea eax, [eax + eax*2]
cmp byte [ecx + eax*4 + 4], 0
je 0x1fc74
inc dl
movzx ax, dl
cmp ax, word [ebp - 0x18]
jb 0x1fc59
jmp 0x1fc7b
and byte [edi + 0x11], 0
mov byte [ebp - 4], dl
mov cl, byte [ebp - 4]
cmp cl, 0xff
jne 0x1fc8f
mov dword [ebx + 0x14], 0xa
jmp 0x1f4a9
mov edx, dword [esi + 0x130]
movzx eax, cl
lea eax, [eax + eax*2]
lea eax, [edx + eax*4]
mov dl, byte [ebx + 0x3a]
mov byte [eax], dl
mov byte [eax + 4], 1
mov byte [edi + 0xd], cl
mov byte [edi + 0x10], 1
inc byte [esi + 0x80]
mov ax, word [ebx + 0x24]
mov word [edi], ax
mov ax, word [ebx + 0x26]
mov word [edi + 2], ax
mov ax, word [ebx + 0x28]
mov word [edi + 4], ax
mov word [edi + 6], 2
mov al, byte [ebx + 0x1e]
mov byte [edi + 8], al
mov al, byte [ebp - 0x20]
mov byte [edi + 9], al
mov al, byte [ebp - 5]
mov byte [edi + 0xc], al
mov cl, byte [ebx + 0x3a]
and byte [edi + 0x13], 0
mov byte [edi + 0xe], cl
mov cl, al
movzx eax, al
shr cl, 1
and cl, 1
mov dword [ebp - 0x40], eax
dec eax
mov byte [edi + 0x12], cl
je 0x1fe3d
dec eax
je 0x1fddb
dec eax
jne 0x1fead
push 0
push 2
push dword [ebp - 0x44]
push dword [ebp - 0x48]
call sub.ntoskrnl.exe__allmul
and byte [ebp + 0xf], 0
cmp byte [ebp - 1], 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
jbe 0x1fdc0
mov dword [ebp - 0x44], eax
shrd eax, edx, 1
mov dword [ebp - 0x3c], eax
movzx eax, byte [ebp - 1]
shr eax, 1
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 1]
shr al, 1
shr edx, 1
and dword [ebp - 0x24], 0
mov byte [ebp - 2], al
lea eax, [ebx + 0x3a]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x20], eax
jmp 0x1fd64
mov edx, dword [ebp - 0x38]
mov ecx, dword [esi + 0x13c]
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x20], ecx
mov cl, byte [ebp + 0xf]
shr cl, 1
mov byte [eax + 0x2c], cl
mov dword [ebp - 0x1c], eax
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x24]
cdq
idiv dword [ebp - 0x44]
mov eax, dword [ebp - 0x1c]
inc byte [ebp + 0xf]
inc dword [ebp - 0x24]
inc dword [ebp - 0x20]
mov byte [eax + 0x2f], cl
mov byte [ebp - 3], cl
mov cl, byte [ebp - 2]
mov byte [eax + 0x2b], cl
mov byte [eax + 0x2e], dl
mov byte [eax + 0x2d], dl
mov al, byte [ebp + 0xf]
cmp al, byte [ebp - 1]
jb 0x1fd61
and byte [edi + 0xa], 0
and byte [edi + 0xb], 0
add byte [esi + 0x81], 2
add byte [esi + 0x82], 2
jmp 0x1fead
mov eax, dword [ebp - 0x48]
push esi
push dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x4c], eax
call fcn.00018b54
xor dl, dl
cmp byte [ebp - 1], dl
mov byte [ebp - 0x18], al
jbe 0x1fe32
lea eax, [ebx + 0x3a]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
mov ecx, dword [esi + 0x13c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x48]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x44]
mov byte [ecx + 0x2f], dl
inc dl
inc dword [ebp + 0xc]
cmp dl, byte [ebp - 1]
mov dword [ecx + 0x24], eax
mov al, byte [ebp - 0x18]
mov byte [ecx + 0x2d], al
mov byte [ecx + 0x2b], 2
jb 0x1fe00
inc byte [esi + 0x82]
mov byte [edi + 0xb], al
jmp 0x1fead
push dword [ebp - 0x44]
movzx eax, byte [ebp - 1]
push dword [ebp - 0x48]
cdq
push edx
push eax
call sub.ntoskrnl.exe__allmul
push esi
push dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
call fcn.00018b06
xor dl, dl
cmp byte [ebp - 1], dl
mov byte [ebp + 0xf], al
jbe 0x1fea1
lea eax, [ebx + 0x3a]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
mov ecx, dword [esi + 0x13c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x50]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x4c]
mov dword [ecx + 0x1c], eax
mov al, byte [ebp + 0xf]
mov byte [ecx + 0x2c], al
mov al, byte [ebp - 1]
mov byte [ecx + 0x2e], dl
inc dl
inc dword [ebp - 0x24]
cmp dl, al
mov byte [ecx + 0x2b], al
jb 0x1fe6e
mov al, byte [ebp + 0xf]
inc byte [esi + 0x81]
mov byte [edi + 0xa], al
and byte [ebp - 2], 0
and byte [ebp + 0xf], 0
cmp byte [ebp - 1], 0
jbe 0x20142
mov edx, dword [esi + 0x13c]
movzx eax, byte [ebp + 0xf]
mov cl, byte [eax + ebx + 0x3a]
movzx eax, cl
mov dword [ebp - 0x24], eax
mov eax, dword [edx + eax*4]
mov edi, dword [eax + 0x10]
mov dl, byte [ebp - 5]
mov byte [eax + 0x2a], dl
mov dl, byte [ebp - 0x28]
mov byte [eax + 0x30], dl
mov edx, dword [ebp - 0x50]
mov word [eax + 0x28], 0x8001
mov byte [eax + 0x31], 0xa
mov dword [ebp - 0x1c], eax
mov al, byte [ebp - 4]
mov byte [edi + 0x12a], al
xor eax, eax
cmp byte [ebp + 0xf], 1
mov dword [edi + 0x6c], edx
mov edx, dword [ebp - 0x4c]
mov byte [ebp - 0x20], cl
mov word [edi + 0x106], 0x1095
mov word [edi + 0x10a], 2
mov word [edi + 0x108], 1
mov byte [edi + 0x129], 1
mov dword [edi + 0x124], eax
mov byte [edi + 0x12b], cl
mov byte [edi + 0x12c], 1
mov dword [edi + 0x70], edx
mov dword [edi + 0x11c], eax
mov dword [edi + 0x120], eax
jne 0x1ff6b
cmp byte [ebp - 5], 2
jne 0x1ff6b
test byte [ebp - 0xa], 1
je 0x1ff6b
mov byte [edi + 0x128], 2
mov byte [ebp - 0x38], cl
jmp 0x1ff72
mov byte [edi + 0x128], 1
mov ax, word [ebx + 0x24]
mov word [edi + 0x10c], ax
mov ax, word [ebx + 0x26]
mov word [edi + 0x10e], ax
mov ax, word [ebx + 0x28]
mov word [edi + 0x110], ax
push 0x14
lea eax, [edi + 0x14]
push eax
call fcn.00013cb8
push 8
push str.2.01
lea eax, [edi + 0x2e]
push eax
call fcn.00013c90
mov eax, dword [ebp - 0x40]
dec eax
je 0x200bd
dec eax
je 0x20071
dec eax
jne 0x20117
push 0x14
push str.SiI_RAID_10_Set
lea eax, [edi + 0x12e]
push eax
call fcn.00013c90
mov al, byte [ebp - 1]
mov byte [edi + 0x11a], 2
shr al, 1
mov byte [edi + 0x118], al
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax + 0x2c]
mov byte [edi + 0x119], cl
mov cl, byte [eax + 0x2d]
mov byte [edi + 0x11b], cl
mov cl, byte [eax + 0x2e]
mov byte [edi + 0x116], cl
mov cx, word [ebp - 0x34]
mov word [edi + 0x112], cx
mov byte [edi + 0x117], 2
movzx ecx, byte [eax + 0x2c]
mov edx, dword [esi + 0x134]
movzx edi, byte [eax + 0x2e]
lea edx, [edx + ecx*4]
mov cl, byte [ebp - 0x20]
mov byte [edx + edi], cl
movzx edx, byte [eax + 0x2d]
mov edi, dword [esi + 0x138]
lea edx, [edi + edx*4]
movzx edi, byte [eax + 0x2f]
mov byte [edx + edi], cl
cmp byte [eax + 0x2f], 0
jne 0x20117
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + 0x2d]
push dword [ebp - 0x20]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esi + 0x120]
push eax
call fcn.00018ba2
jmp 0x20117
push 0x14
push str.SiI_RAID_1_Set
lea eax, [edi + 0x12e]
push eax
call fcn.00013c90
mov eax, dword [ebp - 0x1c]
mov byte [edi + 0x11a], 2
mov cl, byte [eax + 0x2d]
mov byte [edi + 0x11b], cl
mov byte [edi + 0x117], 1
movzx ecx, byte [eax + 0x2d]
mov edx, dword [esi + 0x138]
lea ecx, [edx + ecx*4]
movzx edx, byte [eax + 0x2f]
mov dword [ebp - 0x44], ebx
mov bl, byte [ebp - 0x20]
mov byte [ecx + edx], bl
mov ebx, dword [ebp - 0x44]
jmp 0x20046
push 0x14
push str.SiI_RAID_0_Set
lea eax, [edi + 0x12e]
push eax
call fcn.00013c90
mov ax, word [ebp - 0x34]
mov dl, byte [ebp - 0x20]
mov word [edi + 0x112], ax
mov al, byte [ebp + 0xf]
mov byte [edi + 0x116], al
mov al, byte [ebp - 1]
mov byte [edi + 0x118], al
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax + 0x2c]
and byte [edi + 0x117], 0
mov byte [edi + 0x119], cl
movzx ecx, byte [eax + 0x2e]
movzx eax, byte [eax + 0x2c]
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 0x134]
mov byte [eax + ecx], dl
mov ecx, dword [ebp - 0x24]
push 0x10008
push dword [ebp + 0x10]
mov al, 1
push ecx
shl al, cl
push esi
push dword [ebp + 8]
or byte [ebp - 2], al
call fcn.00019004
inc byte [ebp + 0xf]
mov al, byte [ebp + 0xf]
cmp al, byte [ebp - 1]
jb 0x1febf
mov al, byte [ebp - 2]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov byte [ecx + edx + 0xf], al
mov al, byte [ebp - 0x28]
and byte [ebp - 0x12], 0
push 1
mov byte [ebp - 0x14], al
mov al, byte [ebp - 5]
push 3
mov byte [ebp - 0x13], al
lea eax, [ebp - 0x14]
push eax
push 0
push 1
push dword [ebp + 8]
call fcn.000217e0
test byte [ebp - 0xa], 1
je 0x2034c
push dword [ebp - 0x38]
push dword [ebp - 0x18]
push esi
push dword [ebp + 8]
call fcn.00018bc6
jmp 0x2034c
cmp dword [ebx + 0x18], 8
jb 0x2047d
xor eax, eax
mov word [ebx + 0x1c], 2
mov word [ebx + 0x1e], dx
cmp byte [esi + 0x4f], al
setne al
mov dword [ebx + 0x20], eax
jmp 0x1f4a9
mov eax, dword [ebx + 0x18]
cmp eax, 2
jb 0x2047d
movzx ecx, word [ebx + 0x1c]
inc ecx
inc ecx
cmp ecx, eax
ja 0x2047d
movzx di, byte [esi + 0x116]
cmp di, dx
mov word [ebx + 0x1c], di
je 0x1f4a9
add ebx, 0x1e
mov dword [ebp + 8], ebx
mov ecx, dword [esi + 0x12c]
movzx eax, dx
lea eax, [eax + eax*2]
cmp byte [ecx + eax*4], 0
jne 0x20215
inc edx
cmp dx, 2
jae 0x20235
mov ebx, dword [esi + 0x12c]
movzx eax, dx
lea eax, [eax + eax*2]
cmp byte [ebx + eax*4], 0
je 0x201fc
cmp dx, 2
jae 0x20235
movzx eax, dx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
cmp byte [eax], 0
je 0x20235
mov ecx, dword [ebp + 8]
mov al, byte [eax + 2]
inc edx
inc dword [ebp + 8]
mov byte [ecx], al
add edi, 0xffff
test di, di
je 0x1f4a9
cmp dx, 2
jb 0x201ea
jmp 0x1f4a9
sub ecx, 0x42030
je 0x2066e
push 4
pop eax
sub ecx, eax
je 0x205f5
sub ecx, eax
je 0x20477
sub ecx, eax
je 0x20427
sub ecx, eax
je 0x20355
sub ecx, eax
je 0x202a2
push 8
push dword [ebp - 0x30]
call fcn.00013cb8
push 8
push 0x1f0da
push dword [ebp - 0x30]
call fcn.00013c90
mov al, 6
jmp 0x1f4b2
mov dl, byte [ebx + 0x1c]
movzx ax, dl
cmp ax, word [ebp - 0x18]
jae 0x1f4a2
mov ecx, dword [esi + 0x13c]
movzx eax, dl
mov ecx, dword [ecx + eax*4]
cmp byte [ecx + 0x2a], 0
mov dword [ebp - 0x24], eax
je 0x1f4a2
and byte [ebp + 0xf], 0
mov edi, dword [esi + 0x12c]
movzx eax, byte [ebp + 0xf]
lea eax, [eax + eax*2]
cmp byte [edi + eax*4 + 2], dl
je 0x202ec
inc byte [ebp + 0xf]
cmp byte [ebp + 0xf], 4
jb 0x202d6
cmp byte [ebp + 0xf], 4
jae 0x1f4a2
movzx eax, byte [ebp + 0xf]
lea eax, [eax + eax*2]
shl eax, 2
and byte [eax + edi], 0
mov edx, dword [esi + 0x12c]
and byte [eax + edx + 1], 0
mov edx, dword [esi + 0x12c]
or byte [eax + edx + 2], 0xff
dec byte [esi + 0x116]
mov edi, dword [ecx + 0x10]
and byte [ecx + 0x2a], 0
push 0x200
push edi
call fcn.00013cb8
mov word [edi + 0x13e], 0x5555
push 8
push dword [ebp + 0x10]
push dword [ebp - 0x24]
push esi
push dword [ebp + 8]
call fcn.00019004
and byte [ebp - 3], 0
jmp 0x1f4a9
cmp dword [ebx + 0x18], 1
jb 0x2047d
mov dl, byte [ebx + 0x1c]
movzx ax, dl
cmp ax, word [ebp - 0x18]
jae 0x1f4a2
mov ecx, dword [esi + 0x13c]
movzx eax, dl
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0x24], eax
mov al, byte [ecx + 0x2a]
cmp al, 1
je 0x1f4a2
cmp al, 4
je 0x1f4a2
test al, 2
je 0x203a6
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x128], 4
jne 0x1f4a2
and byte [ebp + 0xf], 0
mov edi, dword [esi + 0x12c]
movzx eax, byte [ebp + 0xf]
lea eax, [eax + eax*2]
cmp byte [edi + eax*4], 0
je 0x203c6
inc byte [ebp + 0xf]
cmp byte [ebp + 0xf], 4
jb 0x203b0
cmp byte [ebp + 0xf], 4
jae 0x1f4a2
movzx eax, byte [ebp + 0xf]
lea eax, [eax + eax*2]
shl eax, 2
mov byte [eax + edi], 1
mov edi, dword [esi + 0x12c]
mov byte [eax + edi + 1], 1
mov edi, dword [esi + 0x12c]
mov byte [eax + edi + 2], dl
inc byte [esi + 0x116]
mov eax, dword [ecx + 0x10]
mov byte [ecx + 0x2a], 4
mov word [eax + 0x106], 0x1095
mov word [eax + 0x10a], 2
mov word [eax + 0x108], 1
mov byte [eax + 0x117], 3
jmp 0x2033b
cmp dword [ebx + 0x18], 0x204
jb 0x2047d
mov al, byte [ebx + 0x1c]
cmp al, 2
push 2
pop edi
jae 0x204aa
mov ecx, dword [ebp - 0x2c]
movzx eax, al
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp byte [eax + 0x10], 0
jne 0x2044f
mov dword [ebx + 0x14], edi
mov al, byte [eax + 0xd]
and byte [ebx + 0x1d], 0
movzx eax, al
push eax
lea eax, [ebx + 0x20]
push eax
push esi
push dword [ebp + 8]
call fcn.000188c6
test al, al
jne 0x1f4a9
mov dword [ebx + 0x14], edi
jmp 0x1f4a9
cmp dword [ebx + 0x18], 2
jae 0x20489
mov dword [ebx + 0x14], 3
jmp 0x1f4a9
mov al, byte [ebx + 0x1c]
cmp al, 2
jae 0x204aa
mov ecx, dword [ebp - 0x2c]
movzx eax, al
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
cmp byte [eax + 0x10], 0
je 0x204aa
mov cl, byte [eax + 0xc]
test cl, 2
jne 0x204b6
mov dword [ebx + 0x14], 0xb
jmp 0x1f4a9
mov dl, byte [ebx + 0x1d]
cmp dl, 0x64
mov byte [ebp + 0xf], dl
ja 0x1f4a2
test dl, dl
jne 0x205b5
cmp cl, 3
jne 0x2054a
push 2
xor ecx, ecx
pop edx
mov eax, dword [esi + 0x120]
lea eax, [eax + ecx + 0x27]
cmp byte [eax], 0
je 0x204e9
and byte [eax], 0
add ecx, 0x30
dec edx
jne 0x204d7
xor edi, edi
mov dword [ebp - 0x30], 2
mov eax, dword [esi + 0x134]
lea ebx, [edi + eax]
mov dword [ebp - 0x34], 4
mov al, byte [ebx]
movzx cx, al
cmp cx, word [ebp - 0x18]
jae 0x2053a
mov ecx, dword [esi + 0x13c]
mov dl, byte [ebp + 0xf]
push 8
movzx eax, al
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx + 0x10]
push 0
push eax
push esi
push dword [ebp + 8]
mov byte [ecx + 0x114], dl
call fcn.00019004
inc ebx
dec dword [ebp - 0x34]
jne 0x20508
add edi, 4
dec dword [ebp - 0x30]
jne 0x204f8
jmp 0x205aa
mov al, byte [eax + 0xb]
cmp al, 2
jae 0x20565
mov edx, dword [esi + 0x120]
movzx ecx, al
lea ecx, [ecx + ecx*2]
shl ecx, 4
and byte [ecx + edx + 0x27], 0
mov ecx, dword [esi + 0x138]
movzx eax, al
push 4
lea ebx, [ecx + eax*4]
pop edi
mov al, byte [ebx]
movzx cx, al
cmp cx, word [ebp - 0x18]
jae 0x205a6
mov ecx, dword [esi + 0x13c]
mov dl, byte [ebp + 0xf]
push 8
movzx eax, al
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx + 0x10]
push 0
push eax
push esi
push dword [ebp + 8]
mov byte [ecx + 0x114], dl
call fcn.00019004
inc ebx
dec edi
jne 0x20574
push esi
call fcn.00018c7e
jmp 0x1f4a9
cmp cl, 3
jne 0x205d5
push 2
xor eax, eax
pop ecx
mov edx, dword [esi + 0x120]
mov byte [edx + eax + 0x27], 1
add eax, 0x30
dec ecx
jne 0x205bf
jmp 0x204ef
mov al, byte [eax + 0xb]
cmp al, 2
jae 0x20565
mov edx, dword [esi + 0x120]
movzx ecx, al
lea ecx, [ecx + ecx*2]
shl ecx, 4
mov byte [ecx + edx + 0x27], 1
jmp 0x20565
cmp dword [ebx + 0x18], 1
jb 0x2047d
mov al, byte [ebx + 0x1c]
cmp al, 2
mov byte [ebp - 0x28], al
jae 0x204aa
mov ecx, dword [ebp - 0x2c]
movzx eax, al
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov cl, byte [eax + 0xc]
cmp cl, 2
jne 0x20638
movzx eax, byte [eax + 0xb]
mov ecx, dword [esi + 0x120]
lea eax, [eax + eax*2]
shl eax, 4
cmp byte [eax + ecx + 0x1c], 1
jmp 0x20651
cmp cl, 3
jne 0x1f4a2
mov eax, dword [esi + 0x120]
cmp byte [eax + 0x1c], 1
je 0x20657
cmp byte [eax + 0x4c], 1
jne 0x1f4a9
push dword [ebp - 0x28]
push dword [ebp + 0x10]
push esi
push dword [ebp + 8]
call fcn.0001bae6
mov byte [ebp - 3], al
jmp 0x1f4a9
cmp dword [ebx + 0x18], 2
jb 0x2047d
movzx eax, byte [ebx + 0x1c]
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
mov cl, byte [eax + 0xc]
cmp cl, 3
mov dl, byte [eax + 8]
mov byte [ebp - 0xa], dl
jne 0x2069d
mov ecx, dword [esi + 0x134]
xor dl, dl
jmp 0x206af
cmp cl, 2
jne 0x1f4a2
mov ecx, dword [esi + 0x138]
mov dl, byte [eax + 0xb]
mov dword [ebp - 0x2c], ecx
mov cl, byte [ebx + 0x1d]
cmp cl, byte [eax + 0x12]
je 0x1f4a2
cmp byte [esi + 0x117], 0
jne 0x20742
cmp byte [esi + 0x118], 0
jne 0x20742
and byte [ebp + 0xf], 0
and byte [ebp - 2], 0
movzx edi, dl
shl edi, 2
mov byte [eax + 0x12], cl
mov dword [ebp - 0x44], edi
movzx eax, byte [ebp + 0xf]
mov ecx, dword [ebp - 0x2c]
add eax, edi
mov al, byte [eax + ecx]
movzx cx, al
cmp cx, word [ebp - 0x18]
jae 0x20732
mov ecx, dword [esi + 0x13c]
cmp byte [ebx + 0x1d], 0
movzx eax, al
mov ecx, dword [ecx + eax*4]
mov edi, dword [ecx + 0x10]
setne cl
push 8
dec cl
push 0
push eax
push esi
push dword [ebp + 8]
and ecx, 0xff
mov byte [edi + 0x12c], cl
call fcn.00019004
inc byte [ebp - 2]
mov edi, dword [ebp - 0x44]
mov al, byte [ebp - 2]
inc byte [ebp + 0xf]
cmp al, byte [ebp - 0xa]
jb 0x206e4
jmp 0x1f4a9
mov eax, dword [ebp + 0x10]
add esi, 0x3c
mov dword [edi + 0xc], eax
mov eax, dword [esi + 4]
mov dword [edi], esi
mov dword [edi + 4], eax
mov dword [eax], edi
mov dword [esi + 4], edi
jmp 0x1f7b6