Function at 0x1009ff30
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x101600fb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x154
mov al, byte [0x1018ca3b]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push eax
mov dword [esp + 0x68], esi
call fcn.10098410
push eax
mov eax, 0xf5
cdq
idiv dword [0x1018ca10]
mov ecx, dword [0x1018ca0c]
mov dl, byte [edx + ecx]
push edx
push 0xffffffffffffffdf
call fcn.100980e0
mov cl, 0x84
add esp, 0x10
imul cl
mov ecx, esi
mov byte [0x1018ca34], al
call fcn.1009e2a0
test al, al
jne 0x100a0e38
mov edx, dword [esp + 0x178]
lea ecx, [esi + 0x24]
push edx
call fcn.100a8530
mov ebx, dword [eax]
mov eax, 0x30
cdq
idiv dword [0x1018ca10]
mov eax, dword [0x1018ca0c]
push 0
mov cl, byte [edx + eax]
mov dl, byte [esp + 0x16]
mov byte [0x1018ca37], cl
lea ecx, [esp + 0x9c]
mov byte [esp + 0x9c], dl
call fcn.1000bc70
push 0x101913e8
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x98]
push eax
push 0x101913e8
call fcn.1000bf40
mov eax, 0x99
mov ecx, 0x81
mov word [esp + 0x1a], ax
mov word [esp + 0x24], ax
mov word [esp + 0x2e], ax
mov al, byte [0x1019803c]
mov word [esp + 0x1e], cx
mov word [esp + 0x20], cx
mov edi, 0x84
mov esi, 0x9e
mov edx, 0x8c
mov ecx, 0x80
test al, 1
mov dword [esp + 0x16c], 0
mov word [esp + 0x14], di
mov word [esp + 0x16], 0x83
mov word [esp + 0x18], si
mov word [esp + 0x1c], dx
mov word [esp + 0x22], 0xb2
mov word [esp + 0x26], di
mov word [esp + 0x28], cx
mov word [esp + 0x2a], 0x88
mov word [esp + 0x2c], si
mov word [esp + 0x30], dx
mov word [esp + 0x32], cx
mov word [esp + 0x34], 0x9d
jne 0x100a00b4
or al, 1
push 0xed
mov byte [0x1019803c], al
lea eax, [esp + 0x18]
push eax
mov ecx, 0x10198040
call fcn.1000f240
push 0x10043bc0
call fcn.1013c36b
add esp, 4
mov cl, byte [esp + 0x12]
mov esi, dword [0x10198040]
mov byte [esp + 0xec], cl
push 0
lea ecx, [esp + 0xf0]
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0xec]
push eax
push esi
call fcn.1000bf40
mov eax, 0xffd1
mov byte [esp + 0x16c], 1
mov word [esp + 0x14], ax
mov word [esp + 0x20], ax
mov word [esp + 0x22], ax
mov word [esp + 0x26], ax
mov al, byte [0x10196fa4]
mov edi, 0xffce
mov ecx, 0xffd2
mov word [esp + 0x16], di
test al, 1
mov word [esp + 0x18], 0xffe1
mov word [esp + 0x1a], cx
mov word [esp + 0x1c], 0xffcc
mov word [esp + 0x1e], di
mov word [esp + 0x24], cx
jne 0x100a0163
lea edx, [esp + 0x14]
or al, 1
push edx
mov ecx, 0x10196fa8
mov byte [0x10196fa4], al
call fcn.100a8750
push 0x100a1270
call fcn.1013c36b
add esp, 4
mov al, byte [esp + 0x12]
mov esi, dword [0x10196fa8]
push 0
lea ecx, [esp + 0x128]
mov byte [esp + 0x128], al
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x124]
push eax
push esi
call fcn.1000bf40
mov al, byte [0x10196fac]
mov ebp, 0xff77
mov byte [esp + 0x16c], 2
mov word [esp + 0x14], 0xff68
test al, 1
mov word [esp + 0x16], 0xff74
mov word [esp + 0x18], 0xff7a
mov word [esp + 0x1a], 0xff73
mov word [esp + 0x1c], 0xff79
mov word [esp + 0x1e], bp
mov word [esp + 0x20], 0xff7e
mov word [esp + 0x22], 0xff64
mov word [esp + 0x24], 0xff6e
mov word [esp + 0x26], 0xff69
jne 0x100a0216
lea ecx, [esp + 0x14]
or al, 1
push ecx
mov ecx, 0x10196fb0
mov byte [0x10196fac], al
call fcn.100a86d0
push 0x100a1260
call fcn.1013c36b
add esp, 4
mov dl, byte [esp + 0x12]
mov esi, dword [0x10196fb0]
push 0
lea ecx, [esp + 0x148]
mov byte [esp + 0x148], dl
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x144]
push eax
push esi
call fcn.1000bf40
mov eax, 0x33
mov byte [esp + 0x16c], 3
mov word [esp + 0x14], ax
mov word [esp + 0x1c], ax
mov al, byte [0x10196fb4]
mov ecx, 0x30
test al, 1
mov word [esp + 0x16], 0x31
mov word [esp + 0x18], cx
mov word [esp + 0x1a], 0x34
mov word [esp + 0x1e], cx
mov word [esp + 0x20], 0x2a
jne 0x100a02b3
or al, 1
mov ecx, 0x10196fb8
mov byte [0x10196fb4], al
lea eax, [esp + 0x14]
push eax
call fcn.100a8660
push 0x100a1250
call fcn.1013c36b
add esp, 4
mov cl, byte [esp + 0x12]
mov esi, dword [0x10196fb8]
mov byte [esp + 0x134], cl
push 0
lea ecx, [esp + 0x138]
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x134]
push eax
push esi
call fcn.1000bf40
mov al, byte [0x10196fbc]
mov byte [esp + 0x16c], 4
test al, 1
mov word [esp + 0x14], 0xffd9
mov word [esp + 0x16], 0xffcb
mov word [esp + 0x18], 0xffc7
mov word [esp + 0x1a], 0xffd8
mov word [esp + 0x1c], 0xffc9
mov word [esp + 0x1e], di
mov word [esp + 0x20], 0xffc5
mov word [esp + 0x22], 0xffcf
mov word [esp + 0x24], 0xffca
jne 0x100a035a
lea edx, [esp + 0x14]
or al, 1
push edx
mov ecx, 0x10196fc0
mov byte [0x10196fbc], al
call fcn.100a85e0
push 0x100a1240
call fcn.1013c36b
add esp, 4
mov al, byte [esp + 0x12]
mov esi, dword [0x10196fc0]
push 0
lea ecx, [esp + 0x118]
mov byte [esp + 0x118], al
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x114]
push eax
push esi
call fcn.1000bf40
mov al, byte [0x10196fc4]
mov byte [esp + 0x16c], 5
test al, 1
mov word [esp + 0x48], bp
mov word [esp + 0x4a], 0xff7b
mov word [esp + 0x4c], 0xff6b
mov word [esp + 0x4e], 0xff78
mov word [esp + 0x50], 0xff7f
jne 0x100a03e5
lea ecx, [esp + 0x48]
or al, 1
push ecx
mov ecx, 0x10196fc8
mov byte [0x10196fc4], al
call fcn.100a8560
push 0x100a1230
call fcn.1013c36b
add esp, 4
mov dl, byte [esp + 0x12]
mov esi, dword [0x10196fc8]
push 0
lea ecx, [esp + 0x58]
mov byte [esp + 0x58], dl
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x54]
push eax
push esi
call fcn.1000bf40
lea eax, [esp + 0x98]
lea ecx, [esp + 0xec]
push eax
lea edx, [esp + 0xbc]
push ecx
mov ecx, dword [0x10191a54]
push edx
mov byte [esp + 0x178], 6
call fcn.10058e60
mov ecx, eax
call fcn.10067fe0
mov esi, eax
lea eax, [esp + 0x154]
mov byte [esp + 0x16c], 7
push eax
call fcn.10069cb0
push 0x708
lea ecx, [esp + 0x12c]
push esi
push ecx
push eax
mov eax, dword [esp + 0x188]
lea edx, [esp + 0x158]
lea ecx, [esp + 0x148]
push edx
push eax
mov eax, dword [esp + 0x198]
add ebx, 4
push ecx
lea edx, [esp + 0x134]
push ebx
push edx
lea ecx, [esp + 0x7c]
push eax
lea edx, [esp + 0x128]
push ecx
push edx
mov byte [esp + 0x1a0], 8
call fcn.10094d20
add esp, 0x34
push 1
lea ecx, [esp + 0x158]
mov byte [esp + 0x170], 0x12
call fcn.1000bc70
push 1
lea ecx, [esp + 0xbc]
mov byte [esp + 0x170], 0x11
call fcn.1000bc70
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0x170], 0x10
call fcn.1000bc70
mov byte [esp + 0x16c], 0xf
push 1
lea ecx, [esp + 0x118]
call fcn.1000bc70
push 1
lea ecx, [esp + 0x138]
mov byte [esp + 0x170], 0xe
call fcn.1000bc70
push 1
lea ecx, [esp + 0x148]
mov byte [esp + 0x170], 0xd
call fcn.1000bc70
push 1
lea ecx, [esp + 0x128]
mov byte [esp + 0x170], 0xc
call fcn.1000bc70
push 1
lea ecx, [esp + 0xf0]
mov byte [esp + 0x170], 0xb
call fcn.1000bc70
push 1
lea ecx, [esp + 0x9c]
mov byte [esp + 0x170], 0xa
call fcn.1000bc70
call fcn.100ad810
test al, al
je 0x100a0713
mov al, byte [0x10196fcc]
mov word [esp + 0x12], 0xfff5
test al, 1
jne 0x100a05ba
mov bl, al
lea eax, [esp + 0x12]
or bl, 1
push eax
mov ecx, 0x10196fd0
mov byte [0x10196fcc], bl
call fcn.100a8850
push 0x100a1290
call fcn.1013c36b
add esp, 4
mov cl, byte [esp + 0x12]
mov esi, dword [0x10196fd0]
mov byte [esp + 0xec], cl
push 0
lea ecx, [esp + 0xf0]
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0xec]
push eax
push esi
call fcn.1000bf40
mov eax, 0xff9a
mov bl, 0x13
mov word [esp + 0xbe], ax
mov word [esp + 0xc2], ax
mov word [esp + 0xc8], ax
mov al, byte [0x10196fd4]
mov ecx, 0xffa9
mov byte [esp + 0x16c], bl
test al, 1
mov word [esp + 0xb8], 0xff9e
mov word [esp + 0xba], 0xffa3
mov word [esp + 0xbc], cx
mov word [esp + 0xc0], 0xffa7
mov word [esp + 0xc4], 0xffa8
mov word [esp + 0xc6], cx
mov word [esp + 0xca], 0xff99
jne 0x100a068c
lea edx, [esp + 0xb8]
or al, 1
push edx
mov ecx, 0x10196fd8
mov byte [0x10196fd4], al
call fcn.100a87d0
push 0x100a1280
call fcn.1013c36b
add esp, 4
mov al, byte [esp + 0x12]
mov esi, dword [0x10196fd8]
push 0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x9c], al
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x98]
push eax
push esi
call fcn.1000bf40
lea ecx, [esp + 0xec]
push 0xc
lea edx, [esp + 0x9c]
push ecx
push edx
lea ecx, [esp + 0x108]
mov byte [esp + 0x178], 0x14
call fcn.10095a40
push 1
lea ecx, [esp + 0x9c]
mov byte [esp + 0x170], bl
call fcn.1000bc70
push 1
lea ecx, [esp + 0xf0]
mov byte [esp + 0x170], 0xa
call fcn.1000bc70
mov al, byte [esp + 0x12]
push 0
lea ecx, [esp + 0xac]
mov byte [esp + 0xac], al
call fcn.1000bc70
mov byte [esp + 0x16c], 0x15
call fcn.10098410
mov byte [esp + 0x49], al
mov eax, 0xde
mov word [esp + 0x16], ax
mov word [esp + 0x1a], ax
mov word [esp + 0x22], ax
mov al, byte [0x10196fdc]
test al, 1
mov word [esp + 0x14], 0xdc
mov word [esp + 0x18], 0xc1
mov word [esp + 0x1c], 0x80
mov word [esp + 0x1e], 0xcf
mov word [esp + 0x20], 0xdd
jne 0x100a07a9
mov bl, al
lea ecx, [esp + 0x14]
push 0xae
or bl, 1
push ecx
mov ecx, 0x10196fe0
mov byte [0x10196fdc], bl
call fcn.100159b0
push 0x100a8190
call fcn.1013c36b
add esp, 4
mov dl, byte [esp + 0x12]
mov esi, dword [0x10196fe0]
push 0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x9c], dl
call fcn.1000bc70
push esi
call fcn.1013c2c2
add esp, 4
lea ecx, [esp + 0x98]
push eax
push esi
call fcn.1000bf40
lea eax, [esp + 0xa8]
lea ecx, [esp + 0xfc]
push eax
lea edx, [esp + 0x9c]
push ecx
push edx
mov byte [esp + 0x178], 0x16
call fcn.1008f6d0
add esp, 0xc
lea ecx, [esp + 0x98]
test al, al
push 1
mov byte [esp + 0x170], 0x15
sete bl
call fcn.1000bc70
test bl, bl
jne 0x100a0e0b
mov ecx, dword [esp + 0x64]
call fcn.1009e2a0
test al, al
jne 0x100a0e0b
mov al, byte [esp + 0x12]
push 0
lea ecx, [esp + 0x58]
mov byte [0x1018ca3a], 0xf0
mov byte [esp + 0x58], al
call fcn.1000bc70
push 0x101913e8
call fcn.1013c2c2
add esp, 4
mov esi, eax
lea ecx, [esp + 0x54]
push 1
push esi
call fcn.1000c010
test al, al
je 0x100a0891
mov ecx, dword [esp + 0x58]
push esi
push 0x101913e8
push ecx
call fcn.100017d0
add esp, 0xc
lea ecx, [esp + 0x54]
push esi
call fcn.1000bff0
mov eax, 0x29
mov ebx, 0x2d
mov word [esp + 0x72], ax
mov word [esp + 0x88], ax
mov al, byte [0x10196fe4]
mov edx, 0x2c
mov ecx, 0x17
mov esi, 0x38
test al, 1
mov byte [esp + 0x16c], 0x17
mov word [esp + 0x6c], 0x3a
mov word [esp + 0x6e], bx
mov word [esp + 0x70], 0x24
mov word [esp + 0x74], 0x3c
mov word [esp + 0x76], bx
mov word [esp + 0x78], dx
mov word [esp + 0x7a], cx
mov word [esp + 0x7c], si
mov word [esp + 0x7e], 0x27
mov word [esp + 0x80], si
mov word [esp + 0x82], 0x3d
mov word [esp + 0x84], si
mov word [esp + 0x86], cx
mov word [esp + 0x8a], si
mov word [esp + 0x8c], si
mov word [esp + 0x8e], bx
mov word [esp + 0x90], 0x26
mov word [esp + 0x92], dx
mov word [esp + 0x94], 0x21
mov word [esp + 0x96], 0x30
jne 0x100a0982
lea edx, [esp + 0x6c]
or al, 1
push 0x48
push edx
mov ecx, 0x10196fe8
mov byte [0x10196fe4], al
call fcn.100a84c0
push 0x100a82c0
call fcn.1013c36b
add esp, 4
mov al, byte [esp + 0x12]
mov ebp, dword [0x10196fe8]
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.1000bc70
push ebp
call fcn.1013c2c2
add esp, 4
mov edi, eax
lea ecx, [esp + 0x14]
push 1
push edi
call fcn.1000c010
test al, al
je 0x100a09cf
mov ecx, dword [esp + 0x18]
push edi
push ebp
push ecx
call fcn.100017d0
add esp, 0xc
lea ecx, [esp + 0x14]
push edi
call fcn.1000bff0
lea edx, [esp + 0x54]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0xe0]
push eax
push ecx
mov ecx, dword [0x10191a54]
mov byte [esp + 0x178], 0x18
call fcn.10058e60
mov ecx, eax
call fcn.10067fe0
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x170], 0x1b
call fcn.1000bc70
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0x170], 0x1a
call fcn.1000bc70
mov ecx, dword [0x1018ca10]
mov eax, 0x3bb
cdq
idiv ecx
mov edi, dword [0x1018ca0c]
mov al, byte [esp + 0x49]
mov dl, byte [edx + edi]
push edx
mov dl, 0x41
imul dl
push 0xffffffffffffffc3
push eax
mov eax, 0x390
push 0xfffffffffffffffa
cdq
idiv ecx
push 0xffffffffffffffdf
mov al, byte [edx + edi]
push eax
call fcn.100980e0
add esp, 0x10
push eax
push 0xffffffffffffff94
call fcn.100980e0
mov byte [0x1018ca34], al
mov al, byte [0x10196fec]
add esp, 0x10
mov word [esp + 0x14], 0x16
test al, 1
mov word [esp + 0x16], 0x52
mov word [esp + 0x18], 6
mov word [esp + 0x1a], 0x19
mov word [esp + 0x1c], 0x56
jne 0x100a0abb
lea ecx, [esp + 0x14]
or al, 1
push ecx
mov ecx, 0x10196ff0
mov byte [0x10196fec], al
call fcn.10097970
push 0x100a12a0
call fcn.1013c36b
add esp, 4
mov eax, dword [0x10196ff0]
lea edx, [esp + 0xdc]
push edx
lea ecx, [esp + 0xbc]
push eax
push ecx
call fcn.1000cdb0
add esp, 0xc
mov edx, dword [0x1016a210]
lea ecx, [esp + 0xa8]
push edx
push 0
push eax
mov byte [esp + 0x178], 0x1c
call fcn.10015a20
push 1
lea ecx, [esp + 0xbc]
mov byte [esp + 0x170], 0x1a
call fcn.1000bc70
mov al, byte [0x1018ca35]
mov cl, al
inc al
mov byte [0x1018ca35], al
mov eax, dword [esp + 0x49]
push eax
push 0xffffffffffffffdf
push ecx
mov cl, byte [0x1018ca36]
push ecx
call fcn.100980e0
mov dl, byte [esp + 0x22]
add esp, 0x10
lea ecx, [esp + 0xcc]
mov byte [esp + 0xcc], dl
push 0
call fcn.1000bc70
mov al, byte [0x1018ca3a]
mov byte [esp + 0x16c], 0x1d
dec al
push 0xfffffffffffffffa
mov byte [0x1018ca3a], al
push eax
mov al, byte [0x1018ca36]
mov ecx, dword [0x1018ca0c]
push eax
mov eax, 0x2fe
cdq
idiv dword [0x1018ca10]
mov dl, byte [edx + ecx]
push edx
call fcn.100980e0
mov edi, dword [0x1018ca10]
mov cl, al
mov eax, 0x37f
cdq
idiv edi
mov eax, 0x24c
mov ebp, edx
cdq
idiv edi
mov eax, dword [0x1018ca0c]
mov edi, edx
mov dl, byte [eax + ebp]
add dl, byte [edi + eax]
lea eax, [esp + 0xb8]
sub dl, cl
add dl, 0x3d
mov byte [0x1018ca3a], dl
lea edx, [esp + 0xdc]
push edx
push eax
call fcn.1008c780
add esp, 0x18
test al, al
je 0x100a0ddf
mov ecx, dword [esp + 0x64]
call fcn.1009e2a0
test al, al
jne 0x100a0ddf
mov cl, byte [esp + 0x12]
xor edi, edi
mov byte [esp + 0x38], cl
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dl, byte [0x1018ca3a]
mov byte [esp + 0x16c], 0x1e
push edx
push 0xffffffffffffffde
call fcn.100980c0
mov byte [esp + 0x52], al
mov eax, 0xff53
mov word [esp + 0x6c], ax
mov word [esp + 0x6e], ax
mov word [esp + 0x70], ax
mov al, byte [0x10198034]
add esp, 8
test al, 1
jne 0x100a0c59
or al, 1
mov ecx, 0x10198038
mov byte [0x10198034], al
lea eax, [esp + 0x64]
push eax
call fcn.10044320
push 0x10043a40
call fcn.1013c36b
add esp, 4
mov cl, byte [esp + 0x12]
mov ebp, dword [0x10198038]
mov byte [esp + 0x54], cl
push edi
lea ecx, [esp + 0x58]
call fcn.1000bc70
push ebp
call fcn.1013c2c2
add esp, 4
mov edi, eax
lea ecx, [esp + 0x54]
push 1
push edi
call fcn.1000c010
test al, al
je 0x100a0ca5
mov edx, dword [esp + 0x58]
push edi
push ebp
push edx
call fcn.100017d0
add esp, 0xc
lea ecx, [esp + 0x54]
push edi
call fcn.1000bff0
lea eax, [esp + 0x38]
lea ecx, [esp + 0x54]
push eax
lea edx, [esp + 0xd0]
push ecx
push edx
mov byte [esp + 0x178], 0x1f
call fcn.10021e70
add esp, 0xc
lea ecx, [esp + 0x54]
mov byte [esp + 0x16c], 0x1e
push 1
call fcn.1000bc70
mov al, byte [0x1018ca36]
mov ecx, dword [esp + 0x40]
mov byte [0x1018ca35], al
mov eax, dword [esp + 0x3c]
xor ebp, ebp
cmp eax, ebp
je 0x100a0da7
mov edx, ecx
sub edx, eax
and edx, 0xfffffff0
cmp edx, 0x20
jne 0x100a0d93
mov al, byte [esp + 0x12]
push ebp
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.1000bc70
push 0x101913e8
call fcn.1013c2c2
add esp, 4
mov edi, eax
lea ecx, [esp + 0x14]
push 1
push edi
call fcn.1000c010
test al, al
je 0x100a0d56
mov ecx, dword [esp + 0x18]
push edi
push 0x101913e8
push ecx
call fcn.100017d0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], edi
add esp, 0xc
mov word [edx + edi*2], bp
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x14]
push eax
push 1
push ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0x178], 0x20
call fcn.10024390
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x170], 0x1e
call fcn.1000bc70
call fcn.10098410
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
cmp eax, ebp
je 0x100a0da7
mov edx, ecx
sub edx, eax
sar edx, 4
cmp edx, 3
jae 0x100a0e3f
cmp eax, ecx
mov byte [esp + 0x16c], 0x1d
mov edi, ecx
mov esi, eax
je 0x100a0dca
push ebp
mov ecx, esi
call fcn.100461a0
add esi, 0x10
cmp esi, edi
jne 0x100a0db7
mov eax, dword [esp + 0x3c]
push eax
call fcn.101307a0
add esp, 4
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
push 1
lea ecx, [esp + 0xd0]
mov byte [esp + 0x170], 0x1a
call fcn.1000bc70
push 1
lea ecx, [esp + 0xe0]
mov byte [esp + 0x170], 0x15
call fcn.1000bc70
push 1
lea ecx, [esp + 0xac]
mov byte [esp + 0x170], 0xa
call fcn.1000bc70
lea ecx, [esp + 0xfc]
mov dword [esp + 0x16c], 0xffffffff
call fcn.10094f40
xor al, al
jmp 0x100a1214
push 0xa
push eax
call fcn.10021b70
mov ebp, eax
mov al, byte [esp + 0x52]
add esp, 8
mov byte [0x1018ca3b], al
dec al
cmp ebp, 3
mov byte [esp + 0x4a], al
jae 0x100a0e6f
push 7
call fcn.1002f960
mov ebp, eax
add esp, 4
add ebp, 3
mov eax, dword [0x1016a210]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x180]
push eax
add ecx, 0x10
push 0
push ecx
mov ecx, edi
call fcn.1000ba60
mov dword [edi + 0x10], ebp
call fcn.10098410
mov edx, dword [0x1016a210]
mov eax, dword [esp + 0x3c]
push edx
add eax, 0x20
push 0
push eax
lea ecx, [esp + 0xe8]
call fcn.1000ba60
call fcn.10098410
mov edi, dword [0x1018ca10]
mov cl, al
mov eax, 0x349
mov ebp, dword [0x1018ca0c]
cdq
idiv edi
mov al, cl
mov word [esp + 0x6c], 0x3a
mov word [esp + 0x6e], bx
mov word [esp + 0x70], 0x24
mov word [esp + 0x74], 0x3c
mov word [esp + 0x76], bx
mov word [esp + 0x7c], si
mov word [esp + 0x7e], 0x27
mov word [esp + 0x80], si
mov word [esp + 0x82], 0x3d
mov word [esp + 0x84], si
mov word [esp + 0x8a], si
mov word [esp + 0x8c], si
mov word [esp + 0x8e], bx
mov word [esp + 0x90], 0x26
mov word [esp + 0x94], 0x21
mov word [esp + 0x96], 0x30
imul byte [edx + ebp]
mov cl, al
mov eax, 0x2e0
cdq
idiv edi
mov al, cl
mov ecx, 0x17
mov word [esp + 0x7a], cx
mov word [esp + 0x86], cx
imul byte [edx + ebp]
imul byte [esp + 0x4a]
mov dl, 0x6a
mov ebp, 0x2c
imul dl
mov byte [0x1018ca3a], al
mov eax, 0x29
mov word [esp + 0x72], ax
mov word [esp + 0x88], ax
mov al, byte [0x10196fe4]
mov word [esp + 0x78], bp
test al, 1
mov word [esp + 0x92], bp
jne 0x100a100e
mov bl, al
push 0x2e
or bl, 1
mov byte [0x10196fe4], bl
call fcn.1013c2df
add esp, 4
xor ebx, ebx
mov dword [0x10196fe8], eax
xor esi, esi
mov di, word [esp + esi + 0x6c]
push 0x48
mov eax, edi
mov ecx, 0x10196fe8
and eax, 0xffff
push eax
call fcn.100a8ee0
mov ecx, dword [0x10196fe8]
add eax, 0x48
xor eax, edi
mov word [ecx + esi], ax
add esi, 2
cmp esi, ebp
jb 0x100a0fc6
mov edx, dword [0x10196fe8]
push 0x100a82c0
mov word [edx + 0x2c], bx
call fcn.1013c36b
add esp, 4
jmp 0x100a1010
xor ebx, ebx
mov edi, dword [0x10196fe8]
mov al, byte [esp + 0x12]
push edi
mov byte [esp + 0x18], al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
call fcn.1013c2c2
add esp, 4
mov esi, eax
lea ecx, [esp + 0x14]
push 1
push esi
call fcn.1000c010
test al, al
je 0x100a1060
mov ecx, dword [esp + 0x18]
push esi
push edi
push ecx
call fcn.100017d0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], esi
add esp, 0xc
mov word [edx + esi*2], bx
lea eax, [esp + 0xdc]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, dword [0x10191a54]
mov byte [esp + 0x174], 0x21
call fcn.10058e60
mov ecx, eax
call fcn.10068200
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x16c], 0x1e
cmp ecx, ebx
je 0x100a10b5
mov al, byte [ecx - 1]
test al, al
je 0x100a10a9
cmp al, 0xff
je 0x100a10a9
dec al
mov byte [ecx - 1], al
jmp 0x100a10b5
lea eax, [ecx - 2]
push eax
call fcn.101307a0
add esp, 4
mov eax, 0x174
mov cl, byte [esp + 0x4a]
cdq
idiv dword [0x1018ca10]
mov eax, dword [0x1018ca0c]
inc cl
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov al, byte [edx + eax]
add al, cl
mov cl, byte [0x1018ca3d]
imul byte [0x1018ca34]
inc al
dec cl
mov byte [0x1018ca3a], al
mov byte [0x1018ca3d], cl
cmp esi, edi
mov byte [esp + 0x16c], 0x1d
je 0x100a1114
push 1
mov ecx, esi
call fcn.1000bc70
add esi, 0x10
cmp esi, edi
jne 0x100a1100
mov esi, dword [esp + 0x3c]
push esi
call fcn.101307a0
mov ecx, dword [esp + 0xd4]
add esp, 4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
cmp ecx, ebx
mov byte [esp + 0x16c], 0x1a
je 0x100a115a
mov al, byte [ecx - 1]
test al, al
je 0x100a114e
cmp al, 0xff
je 0x100a114e
dec al
mov byte [ecx - 1], al
jmp 0x100a115a
lea eax, [ecx - 2]
push eax
call fcn.101307a0
add esp, 4
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
cmp ecx, ebx
mov byte [esp + 0x16c], 0x15
je 0x100a11a0
mov al, byte [ecx - 1]
test al, al
je 0x100a1194
cmp al, 0xff
je 0x100a1194
dec al
mov byte [ecx - 1], al
jmp 0x100a11a0
lea eax, [ecx - 2]
push eax
call fcn.101307a0
add esp, 4
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
cmp ecx, ebx
mov byte [esp + 0x16c], 0xa
je 0x100a11e6
mov al, byte [ecx - 1]
test al, al
je 0x100a11da
cmp al, 0xff
je 0x100a11da
dec al
mov byte [ecx - 1], al
jmp 0x100a11e6
lea eax, [ecx - 2]
push eax
call fcn.101307a0
add esp, 4
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
lea ecx, [esp + 0xfc]
mov dword [esp + 0x16c], 0xffffffff
call fcn.10094f40
mov al, 1
mov ecx, dword [esp + 0x164]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x160
ret 0x10