Function at 0x100017df
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
or dword [0x10022c60], 0xffffffff
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
inc edi
mov dword [ebp - 4], ebx
mov dword [0x10022c5c], edi
mov eax, dword [0x10022c5c]
and eax, 0xfffffff9
inc eax
mov dword [ebp - 4], eax
and eax, 0xc
push 0xa
or eax, 0xffffff00
pop esi
mov ecx, eax
push 0x7e
pop edx
mov al, cl
and al, dl
mov dword [0x10022c58], edx
mov byte [0x10022c54], al
movzx edx, al
lea eax, [ebp - 0x34]
mov dword [0x10022c50], ebx
mov dword [0x10022c4c], esi
mov dword [0x10022c48], ecx
mov dword [0x10022c44], 0x10022c48
mov dword [ebp - 0x14], 0x5c
mov dword [0x10022c40], 0x10022c58
mov byte [0x10022c3c], 1
mov dword [0x10022c38], ebx
mov dword [0x10022c34], eax
mov eax, dword [ebp - 0x14]
and eax, ecx
sub eax, edx
lea eax, [eax + eax*2]
shl eax, 2
dec esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ebx
mov dword [0x10022c30], ebx
mov dword [0x10022c2c], ebx
mov dword [0x10022c28], ebx
jne 0x1000186d
mov eax, dword [ebp - 4]
push 0x14
pop esi
and eax, ebx
mov dword [ebp - 4], eax
push 0x10022c24
mov word [0x10022c20], bx
mov dword [0x10022c24], edi
mov dword [0x10022c1c], esi
mov dword [0x10022c18], edi
mov dword [0x10022c10], edi
mov dword [0x10022c14], ebx
mov dword [0x10022c0c], edi
call fcn.100049eb
movsx ax, al
mov word [0x10022c20], ax
mov dword [0x10022c08], 0xffffffd0
mov dword [0x10022c04], 0xfffff001
mov dword [0x10022c00], 0x10022c04
mov dword [0x10022bfc], ebx
mov byte [0x10022bf9], 4
mov dword [ebp - 4], 0xfffff
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov byte [0x10022bf8], 0xff
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x38]
push eax
push eax
mov eax, dword [0x10022bfc]
push ebx
add eax, 0x50
push eax
lea eax, [ebp - 4]
push eax
push eax
push eax
push eax
and ecx, 0x18
mov edx, 0x10022bfc
call fcn.10006323
inc byte [0x10022bf8]
mov cl, byte [0x10022bf8]
cmp cl, byte [0x10022bf9]
movsx ax, al
jne 0x1000191e
movzx eax, ax
mov dword [0x10022bfc], eax
push 8
pop edi
lea eax, [ebp - 2]
mov dword [0x10022bf4], eax
mov dword [ebp - 0xc], 0x49
movsx eax, word [ebp - 0xc]
push 0x70
pop ecx
add eax, ecx
mov dword [0x10022bf0], eax
mov dl, cl
sub dl, al
mov eax, 0xbb8
mov dword [0x10022bec], eax
sub eax, ecx
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0x14]
movsx ecx, word [ebp - 0xc]
shl al, 4
add al, 0x57
movsx eax, al
mov dword [0x10022be8], esi
mov dword [0x10022be4], esi
mov esi, 0x26c
or ecx, esi
add eax, ecx
mov dword [0x10022be0], eax
mov dword [0x10022bdc], eax
imul dl
push 0x1c
mov byte [0x10022bd9], al
pop eax
mov byte [0x10022bd8], 0x10
mov dword [0x10022bd4], 0x10022bd8
mov dword [0x10022cdc], 0x1000
mov dword [0x10022bd0], ebx
mov dword [0x10022bc8], edi
mov dword [0x10022bcc], ebx
mov byte [0x10022bc4], 1
mov dword [0x10022bc0], 0x10022be4
mov dword [0x10022bb8], esi
mov dword [0x10022bbc], ebx
mov dword [0x10022bb0], 0x28
mov dword [0x10022bac], 0x10022bb0
mov dword [0x10022ba8], 0x11
mov dword [0x10022ba4], 0x10022ba8
mov byte [0x10022ba0], 0x12
mov dword [0x10022b98], ecx
mov dword [0x10022b9c], ebx
mov byte [0x10022b91], bl
mov dword [ebp - 0x14], 0xc
mov byte [0x10022b90], 0x18
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x38], 0x1f
mov dword [ebp - 0x34], ebx
mov dword [0x10022b8c], 0x20
mov dword [0x10022b88], 0x10022b8c
mov dword [0x10022b80], eax
mov dword [0x10022b84], ebx
mov eax, dword [0x10022b88]
push dword [eax]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10001082
add dword [0x10022b80], 1
mov byte [0x10022b91], al
mov eax, dword [0x10022b80]
adc dword [0x10022b84], ebx
cmp eax, dword [ebp - 0x38]
jne 0x10001a97
mov eax, dword [0x10022b84]
cmp eax, dword [ebp - 0x34]
jne 0x10001a97
mov eax, 0x10022b7c
push eax
push ebx
lea ecx, [ebp - 0x14]
mov dword [0x10022b78], ecx
mov ecx, 0x80004005
push ecx
push eax
mov dword [0x10022b74], eax
lea eax, [ebp - 0x38]
push eax
push 1
lea edx, [ebp - 0xc]
lea eax, [ebp - 0x10]
push eax
mov dword [0x10022b70], edx
lea edx, [ebp - 1]
lea eax, [ebp - 0xc]
mov dword [0x10022b6c], edx
mov edx, 0xe0f461fe
push eax
push 0xc3198020
mov dword [0x10022b7c], 5
mov dword [0x10022b68], ebx
mov dword [ebp - 0x14], 0xc000000d
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], 0x2ff0
mov byte [0x10022b64], bl
mov dword [0x10022b60], ebx
mov dword [0x10022b58], 4
mov dword [0x10022b5c], ebx
mov byte [ebp - 1], bl
mov dword [0x10022e88], 0x40
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], 0x26dd41fd
mov dword [ebp - 8], edx
call fcn.10005cc4
mov edx, dword [0x10022b6c]
mov ecx, eax
imul ecx, dword [ebp - 8]
mov dword [ebp - 8], ecx
movzx dx, byte [edx]
mov dword [0x10022b68], eax
or eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, al
mov byte [0x10022b64], bl
mov dword [0x10022b60], eax
and ecx, 1
imul ecx, edx
lea edx, [ecx + eax + 1]
xor ecx, ecx
call fcn.10004e16
movsx eax, byte [0x10022b64]
cmp eax, dword [0x10022b60]
jb 0x10001bcd
mov eax, dword [0x10022b78]
push dword [eax]
call fcn.10004973
lea eax, [ebp - 0x34]
mov dword [0x10022b50], eax
lea eax, [ebp - 0x34]
mov dword [0x10022b4c], eax
lea eax, [ebp - 1]
mov dword [0x10022b48], eax
lea edx, [ebx + 0xc]
push edx
mov dword [0x10022b44], 0x10
mov eax, dword [0x10022b44]
and eax, 0x26a
lea edx, [ebp - 8]
push edx
push eax
mov ecx, 0x10022b40
mov dword [0x10022b3c], eax
push ecx
mov eax, edx
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
mov dword [0x10022b38], ebx
mov byte [0x10022b34], bl
mov dword [ebp - 0x10], ebx
mov dword [0x10022b40], ebx
mov dword [0x10022b30], ecx
mov dword [0x10022b2c], ebx
mov dword [0x10022b28], 0x1d
mov byte [ebp - 1], bl
mov dword [ebp - 8], 0xffffbff7
call fcn.10004ab4
cmp dword [ebp - 8], ebx
movzx eax, ax
mov dword [ebp - 0x10], eax
je 0x10001c66
push dword [0x10022b30]
call fcn.10004a90
pop ecx
mov byte [0x10022b34], al
xor esi, esi
mov eax, dword [0x10022cd4]
mov ecx, dword [eax + esi*8]
mov eax, ecx
shr eax, 0x1f
add ecx, ecx
or eax, ecx
sub eax, 0x9866
mov ecx, eax
shr eax, 3
shl ecx, 0x1d
or ecx, eax
sub ecx, 0xe537
mov eax, ecx
shr eax, 0x13
shl ecx, 0xd
or eax, ecx
sub eax, esi
push 0x20
mov edx, eax
mov dword [ebp - 4], esi
and dword [ebp - 4], 0x1f
pop ecx
sub ecx, dword [ebp - 4]
shl edx, cl
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 4]
shr eax, cl
mov ecx, dword [ebp - 0x14]
or edx, eax
xor edx, 0x4495
mov eax, edx
shl eax, cl
mov ecx, dword [ebp - 4]
shr edx, cl
or eax, edx
sub eax, esi
mov dword [esi*4 + 0x10022f58], eax
inc esi
cmp esi, 0x17a
jl 0x10001c6d
mov byte [ebp - 1], 0xf4
movsx esi, byte [ebp - 1]
lea edx, [ebp - 0x10]
mov dword [0x10022b24], edx
mov eax, 0x1000
or esi, eax
lea edx, [ebp - 0xc]
mov dword [0x10022b20], edx
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x14], eax
lea edx, [ebp - 8]
mov dword [0x10022b1c], edx
mov dword [0x10022b18], ecx
lea ecx, [esi + 0x1000]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x18]
mov dword [0x10022b14], edx
add eax, esi
mov dword [ebp - 0x20], ebx
mov edx, dword [ebp - 0x20]
mov dword [0x10022b10], edx
mov dl, byte [ebp - 1]
movsx edx, al
mov dword [ebp - 0x10], eax
sub edx, 0x7fffbffd
mov al, cl
mov dword [ebp - 0x18], edi
mov dword [0x10022b08], edi
add al, 0x1e
lea edi, [edx + edx*4]
movsx edx, byte [ebp - 1]
movzx eax, al
shl edi, 3
cmp eax, edx
mov dword [ebp - 0x34], esi
mov dword [0x10022b00], 0x20
mov byte [0x10022afc], bl
mov dword [ebp - 0x28], 0x8007001e
mov dword [ebp - 0xc], 2
mov dword [0x10022af8], ebx
mov dword [0x10022af4], 0x10022af8
mov dword [ebp - 8], ebx
mov dword [0x10022af0], ebx
mov byte [0x10022aec], bl
mov dword [0x10022b0c], ebx
mov dword [0x10022ae8], 0x8007001e
jge 0x10001dc3
lea ecx, [ebp - 0x28]
call fcn.1000401a
jmp 0x10001eb2
xor edx, edx
inc edx
lea eax, [ebp - 0x20]
mov dword [0x10022ae4], eax
lea eax, [ebp - 4]
mov dword [0x10022ae0], eax
and ecx, 0x20
mov dword [ebp - 4], edx
mov dword [ebp - 0x2c], 0x7f9efe20
mov eax, dword [ebp - 0x2c]
add ecx, 0xc
and eax, edi
mov dword [0x10022adc], edx
mov dword [ebp - 0x2c], edx
lea edx, [edi + 0x736f7c4f]
imul ecx, edx
mov word [0x10022ad8], ax
lea eax, [ebp - 0x2c]
mov dword [0x10022ad4], eax
mov eax, esi
neg eax
or eax, 0xa9
or ecx, 0x7d
add ecx, eax
cmp ecx, 0xd8e0ce2a
mov dword [0x10022ad0], 0x7ff0
mov dword [ebp - 0x20], ebx
mov byte [0x10022acc], 0x5d
mov dword [0x10022ac8], 0x10022adc
mov dword [0x10022ac4], 0xfffffff7
mov dword [0x10022ac0], eax
mov dword [0x10022abc], ecx
jne 0x10001e77
push dword [0x10022e88]
push dword [0x10022cdc]
push dword [0x10022cd8]
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [0x100240f8], eax
mov eax, dword [0x10022ac0]
mov edx, dword [0x10022ad4]
mov dl, byte [edx]
mov cl, byte [0x10022ac4]
add cl, 0x7f
add dl, 0x1e
and cl, dl
mov byte [ebp - 1], cl
mov cl, byte [0x10022ad0]
sub cl, byte [ebp - 1]
sub cl, al
sub cl, byte [0x10022ad8]
add cl, 3
movsx eax, cl
sub dword [0x10022abc], eax
mov al, byte [0x10022abc]
mov dl, byte [ebp - 0x34]
movsx ecx, al
mov byte [0x10022afc], al
imul ecx, edi
mov al, byte [0x10022b10]
or al, byte [0x10022ae8]
sub dl, 0x66
imul dl
or cl, 1
add al, cl
mov byte [0x10022aec], al
mov eax, dword [0x100240f8]
mov dword [0x10023f94], eax
lea eax, [ebp - 0x34]
push 0x6f
or esi, 0xffffffff
mov dword [0x10022ab8], eax
pop eax
lea ecx, [ebp - 1]
mov dword [0x10022ab4], 0x8007000e
mov dword [0x10022ab0], 0x10022ab4
mov dword [0x10022aac], 9
mov byte [0x10022aaa], 0xbb
mov byte [0x10022aa9], 0xeb
mov byte [0x10022aa8], 0xe1
mov dword [0x10022aa4], 0x10022aa8
mov dword [0x10022aa0], 2
mov dword [0x10022a9c], 0x2e0a0
mov dword [0x10022a98], ebx
mov dword [ebp - 0x34], esi
mov word [0x10022a94], 0xa
mov dword [0x10022a90], 0x10022a94
mov dword [0x10022a8c], 0x3f
mov dword [0x10022a88], eax
mov dword [0x10022a84], eax
mov dword [0x10022a80], ebx
mov byte [0x10022a7c], bl
mov dword [0x10022a78], 3
mov dword [0x10022a74], esi
mov dword [ebp - 0x10], 5
mov byte [0x10022a70], bl
mov byte [ebp - 1], 0xc
mov dword [0x10022a6c], ecx
mov byte [0x10022a68], 0xf
mov dword [0x10022a64], eax
lea eax, [ebp - 0x10]
push eax
push 0x983b001e
push 0x1c
mov edx, 0x10022a78
mov ecx, 0x10022a7c
call fcn.100055b6
inc esi
cmp esi, dword [ebp - 0x10]
mov byte [0x10022a7c], al
jne 0x10001fb5
movzx esi, al
mov eax, dword [0x10022a78]
imul eax, esi
mov edx, dword [0x10022a6c]
mov dl, byte [edx]
push 5
pop ecx
sub ecx, eax
mov al, cl
add al, byte [0x10022a64]
add dl, cl
inc al
add dl, 0x20
imul dl
mov dl, byte [0x10022a78]
add al, 7
add dl, 2
or dl, 0xe
and al, dl
mov byte [0x10022a70], al
movzx eax, al
add eax, ecx
sub esi, eax
mov byte [ebp - 1], 1
movzx eax, byte [ebp - 1]
dec eax
imul eax, eax, 0x80004003
and eax, 0xc000001d
sub eax, 4
mov dword [0x10022a60], eax
mov byte [0x10022a5c], al
mov byte [ebp - 1], 0xa
lea eax, [ebp - 1]
mov dword [0x10022a58], eax
mov dword [ebp - 0x34], ebx
mov byte [ebp - 1], 4
mov al, byte [ebp - 1]
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x34]
mov dword [0x10022a54], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax + 0x380]
mov dword [0x10022a50], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
and eax, ecx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 5
mov dword [0x10022a80], esi
mov dword [0x10022a48], ebx
mov dword [0x10022a4c], ebx
mov byte [0x10022a41], 2
mov byte [0x10022a40], bl
mov dword [0x10022a3c], 0xaf2
mov dword [0x10022a38], 0x13b9
mov dword [0x10022a30], ebx
mov dword [0x10022a34], ebx
mov dword [0x10022a2c], 0xc4
mov dword [0x10022a28], 0x3c0
mov dword [0x10022a24], 0x2df00
mov dword [0x10022a20], 0xfffffff8
mov byte [0x10022a1e], 0xf8
mov word [0x10022a1c], bx
mov dword [0x10022a18], 0x380
mov dword [0x10022a14], 0x10022a18
mov dword [0x10022a10], ebx
jl 0x1000211c
mov word [0x10022a1c], 3
push 0x10
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x34], 0x20
mov eax, dword [ebp - 0x34]
add eax, 0x18
pop edi
and eax, 0x1f
mov dword [0x10022a0c], eax
or eax, 8
push 0xfffffffffffffffd
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x34]
pop eax
mov dword [0x10022a08], ecx
xor ecx, ecx
mov cl, byte [ebp - 0x34]
push 4
pop esi
push 0x1000
push 0x10022f58
push dword [0x10023f94]
mov dword [0x10022a04], edi
sub eax, ecx
and eax, esi
mov dword [ebp - 0x34], eax
mov byte [0x10022a00], 0x18
mov dword [0x100229f8], ebx
mov dword [0x100229fc], ebx
mov dword [0x100229f0], 0x100229f8
mov dword [0x100229ec], ebx
call fcn.10006340
lea eax, [ebp - 1]
add esp, 0xc
mov dword [0x100229e8], eax
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 0xc]
push 0xfffffffffffffffe
add eax, 3
cmp eax, 0x1d
pop ecx
mov dword [0x100229e4], ebx
mov byte [ebp - 1], 3
mov dword [ebp - 8], ecx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], eax
je 0x10002305
mov dword [0x100229e0], ebx
mov dword [ebp - 0x34], ecx
mov dword [0x100229d8], 0x5bff48
mov dword [0x100229dc], ebx
mov dword [0x100229d0], 0x5bff460
mov dword [ebp - 0x14], 2
lea eax, [ebp - 0x10]
xor ecx, ecx
inc ecx
mov dword [0x100229cc], eax
mov eax, dword [ebp - 8]
and eax, ecx
mov dword [0x100229c8], eax
push 9
and al, 0x40
cmp al, cl
pop esi
mov dword [0x100229c4], ebx
mov dword [ebp - 0x10], ecx
mov byte [0x100229c0], 8
mov dword [0x100229bc], 8
mov dword [0x100229b8], esi
mov byte [0x100229b6], cl
jb 0x10002292
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], 0x19930527
mov eax, dword [ebp - 0x34]
or eax, 0xc0000188
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov ax, word [ebp - 0xc]
mov word [0x100229b4], 6
mov dword [0x100229b0], 0xc24853b6
mov dword [0x100229ac], edi
mov dword [0x100229a8], 0x100229ac
mov dword [0x100229a4], ebx
mov dword [0x100229a0], ebx
xor eax, eax
jmp 0x100022a5
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.10005279
mov esi, dword [0x100229b8]
mov dword [0x100229c4], eax
movsx eax, byte [0x100229b6]
cmp eax, 0x20
je 0x100022c8
mov ecx, dword [0x100229e4]
mov edx, 0x100229c4
call fcn.10004be7
jmp 0x100022e0
mov eax, dword [0x100229e8]
movzx eax, byte [eax]
sub esi, eax
mov dword [0x1002299c], esi
mov dword [0x10022998], esi
mov eax, esi
mov ecx, dword [0x100229c4]
or ecx, eax
dec dword [ebp - 0x14]
mov dword [0x100229c4], ecx
mov dword [0x100229e0], ecx
jne 0x100021f6
push 4
movzx eax, cl
pop esi
jmp 0x10002322
lea eax, [ebp - 0x24]
push eax
push 0x38
push ebx
push ebx
lea eax, [ebp - 8]
push eax
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x13
push eax
call fcn.1000261b
mov dword [ebp - 0xc], eax
mov dword [0x100229e4], eax
mov dword [ebp - 4], ebx
mov al, byte [ebp - 4]
mov cl, 0x1c
imul cl
movzx eax, al
cmp eax, 0x2df
mov dword [0x10022994], ebx
mov dword [ebp - 0x14], 0x1c
mov dword [0x10022990], 0x8007000e
mov dword [0x1002298c], 0xc40188
jae 0x1000237a
lea eax, [ebp - 4]
push eax
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, 0x10022994
push eax
lea ecx, [ebp - 0x14]
push ecx
push eax
call fcn.10005ddc
jmp 0x10002399
lea ecx, [eax + 0x1c]
push 0x8007001a
or ecx, 0x753741cc
push 0x3fd00000
and ecx, eax
push ecx
lea eax, [ebp - 4]
push eax
call fcn.10003db9
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [0x10022994], eax
lea eax, [ebp - 1]
mov dword [0x10022988], eax
xor eax, eax
inc eax
push 5
mov dword [ebp - 0x34], 0xfffffce3
pop ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], ecx
mov dword [0x10022984], ebx
mov dword [0x10022980], 0x331
mov byte [0x1002297c], 0x14
mov dword [0x10022978], 0xc0000066
mov dword [0x10022974], ebx
mov dword [0x10022970], eax
mov dword [0x1002296c], 0x10022970
mov byte [0x10022968], al
mov dword [0x10022964], 0x10022968
mov dword [0x10022960], eax
mov dword [0x1002295c], ecx
je 0x1000244d
mov dword [0x10022958], 0x81f7e
mov dword [0x10022954], 0x81f7f
mov dword [0x10022950], 0xbf478b1a
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 0xbf478b1a
mov edx, dword [ebp - 0x14]
add dword [ebp - 4], eax
cmp dword [ebp - 4], ecx
mov dword [0x10022974], edx
jne 0x10002432
lea eax, [ebp - 0x34]
mov dword [0x1002294c], eax
mov eax, dword [0x10023f94]
mov byte [ebp - 1], bl
mov dword [0x10022948], esi
mov dword [0x10022944], esi
mov dword [0x10022940], ebx
mov dword [0x1002293c], 0x898
mov dword [0x10023fd4], eax
mov dword [0x10022938], 0x4b98
mov dword [0x10022934], 0x10022938
mov dword [0x10022930], 0x177
mov dword [0x1002292c], 0x10022930
call eax
xor eax, eax
mov al, byte [ebp - 1]
xor ecx, ecx
lea edx, [ebp - 4]
push edx
push 0x10022928
lea edx, [ebp - 0x14]
push edx
and eax, dword [0x10022940]
mov dword [ebp - 0x10], edi
mov byte [ebp - 1], al
mov cl, byte [ebp - 1]
xor eax, eax
mov al, byte [0x1002293c]
mov dword [0x10022924], 0x4c11
mov dword [0x10022920], 0x10022924
mov dword [0x1002291c], ebx
mov word [0x10022918], bx
mov byte [0x10022914], bl
mov dword [0x10022910], 0x1002290c
and eax, 0x11
or eax, ecx
mov byte [ebp - 1], al
mov al, byte [ebp - 1]
mov byte [ebp - 1], al
mov al, byte [ebp - 1]
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 4]
add al, 0x20
movsx esi, al
mov eax, esi
imul eax, eax, 0x38
inc eax
mov dword [ebp - 0x14], eax
add eax, 0xc000000d
mov dword [0x10022908], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
lea eax, [eax + esi + 0x4fd6]
mov dword [0x10022928], eax
imul eax, eax, 0xffff0
lea ecx, [ebp - 0x10]
mov dword [0x10022904], ecx
mov ecx, 0x8c
add edx, ecx
mov dword [0x1002290c], eax
movsx eax, ax
mov dword [0x10022900], ecx
push edx
lea ecx, [ebp - 4]
push ecx
mov edi, eax
push eax
and edi, 4
call fcn.10004c04
mov ecx, esi
or ecx, 0xfffffff9
cmp ecx, edi
mov byte [0x10022914], al
jb 0x10002596
mov eax, dword [ebp - 0x14]
inc eax
mov dword [0x100228fc], eax
mov al, 0x10
mov byte [0x10022914], al
cmp dword [0x10022908], 0xc
movsx ax, al
mov word [0x10022918], ax
movzx eax, ax
je 0x100025c7
mov eax, dword [ebp - 0x10]
and eax, 0xff
sub esi, eax
add esi, 0x1e
mov dword [0x100228f8], esi
mov dword [0x100228f4], esi
mov eax, esi
mov dword [ebp - 4], eax
pop edi
mov dword [ebp - 4], ebx
xor eax, eax
mov dword [ebp - 4], 0x31110124
cmp dword [ebp - 4], 0xa
pop esi
mov dword [0x100228f0], ebx
mov dword [0x100228e8], ebx
mov dword [0x100228ec], ebx
mov dword [0x100228e0], ebx
mov dword [0x100228dc], ebx
mov dword [0x100228d8], eax
pop ebx
jne 0x10002611
lea eax, [ebp - 4]
push eax
push eax
call fcn.10005279
mov dword [0x100228d8], eax
mov dword [0x100228dc], eax
xor eax, eax
inc eax
leave
ret