Function at 0x1009e530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov dword [ebp - 0x1c], edx
mov edx, ecx
mov ecx, dword [ebp + 0x1c]
mov esi, dword [edx + 8]
mov dword [ebp - 0x10], edx
test esi, esi
je 0x1009e9b8
mov eax, dword [edx + 0x38]
mov ebx, dword [ebp + 0x10]
mov edi, dword [edx + 0x28]
test ecx, ecx
mov dword [ebp - 0x44], eax
lea eax, [eax - 1]
mov dword [ebp - 0x28], eax
mov dword [edx + 0x38], eax
js 0x1009e89b
mov dword [ebp - 0x20], edi
mov edi, dword [ebx + 0x14]
mov ecx, dword [ebp + 0x14]
test edi, edi
jle 0x1009e5fd
mov eax, dword [ebp + 0x18]
xor ebx, ebx
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + ebx*4]
test ax, ax
js 0x1009e59f
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x24]
and edx, 0x20
jne 0x1009ea9e
mov ecx, dword [esi + 0x6c]
cwde
add eax, dword [ebp - 0x14]
cmp dword [esi + 0x70], ecx
jle 0x1009e5e6
lea edx, [ecx + 1]
mov edi, dword [ebp - 0x28]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
mov dword [edx + ecx*4], 0x32
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], edi
xor edi, edi
mov dword [edx + ecx*4 + 0xc], edi
mov dword [edx + ecx*4 + 0x10], edi
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x14]
inc ebx
mov edi, dword [eax + 0x14]
cmp ebx, edi
jl 0x1009e586
jmp 0x1009e5fd
mov ecx, esi
mov edx, 0x32
push 0
push dword [ebp - 0x28]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x1009e5d3
mov ebx, dword [ebp - 0x20]
dec ebx
cmp dword [ebp + 0x20], 0
jne 0x1009e7c1
cmp dword [ebp + 0xc], 0
jne 0x1009e9d8
mov al, byte [edx + 0x13]
test al, al
je 0x1009e88c
dec al
mov byte [edx + 0x13], al
movzx eax, al
mov eax, dword [edx + eax*4 + 0x98]
mov dword [ebp - 0x14], eax
mov eax, dword [ecx]
mov edi, dword [ebp + 8]
test ax, ax
js 0x1009e64d
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x24]
and edx, 0x20
jne 0x1009eae7
mov ecx, dword [ebp + 0x18]
cwde
lea eax, [ecx + eax + 1]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1009e917
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
mov dword [edx + ecx*4], 0x4e
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1009e931
lea eax, [ecx + 1]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], edx
xor edx, edx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [ebp + 0x1c], 1
mov ecx, dword [ebp - 0x10]
jne 0x1009e6d4
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
je 0x1009eb2e
mov edx, ebx
push 0x60
push edi
push dword [ebp - 0x1c]
call fcn.10070c20
add esp, 0xc
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1009e94f
lea ecx, [eax + 1]
mov edi, dword [ebp - 0x14]
lea eax, [eax + eax*4]
xor edx, edx
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0x20
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], edi
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1009e969
lea ecx, [eax + 1]
mov edi, dword [ebp - 0x28]
lea eax, [eax + eax*4]
xor edx, edx
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0xb
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov edx, dword [esi]
mov ecx, dword [esi + 0x6c]
mov edi, ebx
mov eax, 0x101d4a28
cmp byte [edx + 0x51], 0
mov edx, 0x101d4a28
jne 0x1009e777
xor edx, edx
cmp ecx, 2
mov ebx, dword [esi + 0x68]
setl dl
add edx, ecx
lea edx, [edx + edx*4]
lea edx, [ebx + edx*4 - 0x28]
mov dword [edx + 8], ecx
mov ebx, edi
mov edx, dword [esi]
mov ecx, dword [esi + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x1009e79b
mov edx, dword [ebp - 0x20]
lea eax, [ecx - 1]
test edx, edx
cmovns eax, edx
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [esi + 0x68]
cmp dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x10]
mov dword [eax + 8], ecx
je 0x1009e7c1
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x1009e7c1
mov edi, dword [ebp - 0x14]
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x98], edi
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x44]
mov al, byte [eax + 0x18]
test al, al
jne 0x1009e802
mov eax, dword [edx]
test byte [eax + 0x22], 8
jne 0x1009e7e6
cmp dword [edx + 0x74], 0
jne 0x1009e7e6
cmp byte [edx + 0x14], 0
je 0x1009e8e2
cmp dword [ebp + 0x1c], 0
jle 0x1009e8db
mov eax, dword [edx + 0x74]
test eax, eax
cmove eax, edx
mov byte [eax + 0x15], 1
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x18]
mov ecx, dword [esi + 0x6c]
movzx eax, al
cmp dword [esi + 0x70], ecx
jle 0x1009e984
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
mov dword [edx + ecx*4], 0x97
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov ecx, dword [esi + 0xc]
neg edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1009ea8e
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1009e8fe
lea ecx, [eax + 1]
lea eax, [eax + eax*4]
xor edx, edx
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0x74
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edx + 0x2c]
inc eax
mov dword [ebp - 0x14], eax
mov dword [edx + 0x2c], eax
jmp 0x1009e632
mov ecx, dword [esi + 0x6c]
movzx eax, byte [ebx + 0x18]
cmp dword [esi + 0x70], ecx
jle 0x1009e99e
lea edx, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
mov dword [edx + ecx*4], 0x2f
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov edx, dword [ebp - 0x10]
jmp 0x1009e56c
xor eax, eax
jmp 0x1009e802
mov ecx, edx
mov edx, 0x313
push 4
push 0xffffffffffffffff
push 0
push 2
call fcn.100759f0
add esp, 0x10
jmp 0x1009e839
xor eax, eax
mov ecx, esi
mov edx, 0x74
push eax
push eax
push ebx
call fcn.1004e590
add esp, 0x44
jmp 0x1009e887
mov ecx, esi
mov edx, 0x4e
push 0
push dword [ebp - 0x14]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x1009e689
xor eax, eax
mov ecx, esi
mov edx, 0xf
push eax
push eax
push dword [ebp - 0x14]
call fcn.1004e590
add esp, 0xc
mov dword [ebp - 0x20], eax
jmp 0x1009e6c0
mov ecx, esi
mov edx, 0x20
push dword [ebp - 0x14]
push 0
push ebx
call fcn.1004e590
add esp, 0xc
jmp 0x1009e718
xor eax, eax
mov ecx, esi
mov edx, 0xb
push eax
push dword [ebp - 0x28]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x1009e74c
mov ecx, esi
mov edx, 0x97
push 0
push dword [ebp + 0x1c]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x1009e839
mov ecx, esi
mov edx, 0x2f
push 0
push dword [ebp - 0x28]
push eax
call fcn.1004e590
add esp, 0xc
jmp 0x1009e8d3
cmp dword [edx + 0x74], 0
je 0x1009eb86
mov esi, dword [ebp - 0x10]
mov ecx, esi
call fcn.1000f530
mov ecx, dword [ebp + 0x1c]
mov edx, esi
mov esi, eax
jmp 0x1009e54f
cmp edi, 1
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], ebx
jne 0x1009eb66
mov eax, dword [ebp - 0x10]
mov al, byte [eax + 0x13]
test al, al
je 0x1009ef32
mov ecx, dword [ebp - 0x10]
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x10]
mov al, byte [eax + 0x13]
test al, al
je 0x1009eba1
mov ecx, dword [ebp - 0x10]
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x98]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x18]
mov edx, 0x60
push dword [ebp - 0x1c]
mov esi, dword [ebp + 0xc]
push dword [esi + 0x2c]
push dword [ebp - 0x20]
call fcn.1004e520
add esp, 0xc
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov ebx, dword [ecx + 8]
call fcn.10070f10
test eax, eax
je 0x1009ebde
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x1009ebcc
cmp dword [ecx + 0x1f0], 0
jne 0x1009ebde
dec dword [eax]
jne 0x1009ebde
mov ecx, dword [eax + 0xc]
mov edx, eax
call fcn.10019c40
jmp 0x1009ebde
mov edx, esi
push edi
call fcn.10078ce0
add esp, 4
jmp 0x1009e853
mov edx, dword [ecx + 4]
mov dword [ebp - 0x18], esi
movzx edi, word [edx + 0x10]
and edi, 0x20
test ax, ax
jle 0x1009ef46
mov esi, edx
movsx edx, ax
mov eax, 1
test edx, edx
cmovle edx, eax
add esi, 0x24
xor eax, eax
mov dword [ebp - 0x24], edx
movzx edi, di
shr edi, 5
xor edi, 1
add eax, edi
movzx edi, word [esi]
add esi, 0x14
and edi, 0x20
dec edx
jne 0x1009eacb
jmp 0x1009ef4f
mov edx, dword [ecx + 4]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], ebx
movzx edi, word [edx + 0x10]
and edi, 0x20
test ax, ax
jle 0x1009ef67
mov esi, edx
xor edx, edx
cwde
inc edx
test eax, eax
cmovg edx, eax
add esi, 0x24
xor eax, eax
mov ebx, edx
movzx edi, di
shr edi, 5
xor edi, 1
add eax, edi
movzx edi, word [esi]
add esi, 0x14
and edi, 0x20
dec edx
jne 0x1009eb12
jmp 0x1009ef6b
mov ecx, esi
mov edx, 0x35
push dword [ebp - 0x14]
push dword [ebp - 0x28]
push dword [ebp + 0x18]
call fcn.1004e520
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x1009e6d4
mov edx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [edx + eax*4 - 0x12], 0x90
jmp 0x1009e6d4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x1c]
sub eax, edi
jge 0x1009ebb3
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
add eax, edi
mov dword [ebp - 0x24], edx
mov dword [ecx + 0x2c], eax
jmp 0x1009ea0a
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
test byte [eax + 0x4c], 8
jne 0x1009e9c2
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x17], 1
jmp 0x1009e9c2
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x2c]
inc ecx
mov dword [ebp - 0x2c], ecx
mov dword [eax + 0x2c], ecx
jmp 0x1009ea2d
mov edx, dword [ebp - 0x10]
mov ebx, dword [edx + 0x20]
mov ecx, ebx
lea ecx, [ebx + edi]
mov dword [ebp - 0x24], ebx
mov dword [edx + 0x20], ecx
mov dword [edx + 0x1c], eax
jmp 0x1009ea0a
mov edx, dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x68]
lea edx, [edx + edx*4]
mov byte [ecx + edx*4 - 0x13], 0xf7
mov dword [ecx + edx*4 - 4], eax
test edi, edi
jle 0x1009ec99
mov eax, dword [ebp + 0x18]
xor esi, esi
inc eax
mov dword [ebp - 0x34], eax
mov ecx, esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ecx + esi*4]
add eax, esi
mov dword [ebp - 0x14], eax
test cx, cx
js 0x1009ec70
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [eax + 0x24]
and eax, 0x20
je 0x1009ec70
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
movzx edx, word [eax + 0x10]
and edx, 0x20
test cx, cx
jle 0x1009ec54
movsx ebx, cx
mov ecx, 1
test ebx, ebx
cmovle ebx, ecx
add eax, 0x24
xor ecx, ecx
mov dword [ebp - 0x30], ebx
movzx edx, dx
shr edx, 5
xor edx, 1
add ecx, edx
movzx edx, word [eax]
add eax, 0x14
and edx, 0x20
dec ebx
jne 0x1009ec3b
jmp 0x1009ec5d
mov dword [ebp - 0x30], 0
xor ecx, ecx
test dx, dx
je 0x1009ec70
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
sub edx, ecx
add dx, word [eax + 0x2c]
mov ecx, edx
movsx eax, cx
mov ecx, dword [ebp - 0x18]
mov edx, 0x4d
add eax, dword [ebp - 0x34]
push 0
push dword [ebp - 0x14]
push eax
call fcn.1004e520
add esp, 0xc
mov eax, esi
inc eax
mov esi, eax
cmp eax, edi
jne 0x1009ebef
cmp dword [ebp + 0x1c], 1
jne 0x1009ee51
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
cmp dword [eax], ecx
jne 0x1009ee51
test edi, edi
jle 0x1009ee3a
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x14], 0
mov eax, dword [eax + 0x6c]
lea eax, [edi + eax + 1]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [eax + ecx*4]
test cx, cx
js 0x1009ed43
mov eax, dword [esi + 0x24]
and eax, 0x20
je 0x1009ed43
mov ebx, dword [esi + 4]
movzx eax, word [ebx + 0x10]
and eax, 0x20
test cx, cx
jle 0x1009ed2a
movsx edx, cx
mov ecx, 1
test edx, edx
cmovle edx, ecx
add ebx, 0x24
xor ecx, ecx
mov dword [ebp - 0x1c], edx
movzx eax, ax
shr eax, 5
xor eax, 1
add ecx, eax
movzx eax, word [ebx]
add ebx, 0x14
and eax, 0x20
dec edx
jne 0x1009ed11
jmp 0x1009ed33
mov dword [ebp - 0x1c], 0
xor ecx, ecx
test ax, ax
je 0x1009ed43
mov eax, dword [ebp - 0x1c]
sub eax, ecx
add ax, word [esi + 0x2c]
mov ecx, eax
movsx eax, cx
mov ecx, dword [ebp + 0xc]
add eax, dword [ebp - 0x34]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
test byte [edx + 0x24], 0x20
mov dword [ebp - 0x3c], edx
movzx eax, word [eax + ecx*2]
mov edx, eax
mov word [ebp - 0x1c], ax
jne 0x1009edc7
movsx eax, dx
mov ecx, dword [ebp + 8]
movzx edx, word [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
add eax, dword [ebp - 0x34]
cmp dx, word [ecx + 0x28]
mov ecx, ebx
mov edx, 0x34
cmove eax, dword [ebp + 0x18]
push eax
push dword [ebp - 0x40]
push dword [ebp - 0x30]
call fcn.1004e520
add esp, 0xc
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x1009edb0
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov word [ecx + eax*4 - 0x12], 0x10
mov eax, dword [ebp - 0x14]
inc eax
cmp eax, edi
mov ecx, eax
mov dword [ebp - 0x14], eax
je 0x1009ee3a
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
jmp 0x1009ecd7
movzx eax, word [ebp - 0x1c]
test ax, ax
mov edx, eax
js 0x1009ed6b
mov eax, dword [ebp - 0x3c]
mov ebx, dword [eax + 4]
movzx eax, word [ebx + 0x10]
and eax, 0x20
cmp word [ebp - 0x1c], 0
je 0x1009ee15
movsx esi, word [ebp - 0x1c]
mov ecx, 1
test esi, esi
cmovle esi, ecx
add ebx, 0x24
xor edx, edx
mov dword [ebp - 0x38], esi
movzx eax, ax
shr eax, 5
xor eax, 1
add edx, eax
movzx eax, word [ebx]
add ebx, 0x14
and eax, 0x20
dec esi
jne 0x1009edfc
jmp 0x1009ee1e
mov dword [ebp - 0x38], 0
xor edx, edx
test ax, ax
je 0x1009ed6b
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
sub ecx, edx
add cx, word [eax + 0x2c]
mov edx, ecx
jmp 0x1009ed6b
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov edx, 0xb
push eax
push dword [ebp - 0x28]
push eax
call fcn.1004e520
add esp, 0xc
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax]
call fcn.100984b0
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov edx, 0x5b
mov ecx, ebx
push esi
push edi
push dword [ebp - 0x24]
call fcn.1004e520
add esp, 0xc
mov ecx, ebx
mov edx, eax
push edi
push dword [ebp - 0x14]
call fcn.1000f710
add esp, 8
mov ecx, ebx
mov edx, 0x1e
push esi
push dword [ebp - 0x28]
push dword [ebp - 0x20]
call fcn.1004e520
add esp, 0xc
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
jne 0x1009eebf
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], 0
cmp dword [ebp - 0x2c], 0
je 0x1009eee5
mov eax, dword [ebp - 0x10]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x1009eee5
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x2c]
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x98], esi
cmp edi, 1
jne 0x1009ef12
cmp dword [ebp - 0x24], 0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x10]
je 0x1009e7c1
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x1009e7c1
mov edi, dword [ebp - 0x24]
jmp 0x1009e7b3
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
cmp dword [edx + 0x1c], edi
jge 0x1009e7c1
mov eax, dword [ebp - 0x24]
mov dword [edx + 0x1c], edi
mov dword [edx + 0x20], eax
jmp 0x1009e7c1
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 0x2c]
inc edx
mov ecx, edx
mov dword [ebp - 0x24], edx
mov dword [eax + 0x2c], edx
jmp 0x1009ea0a
mov dword [ebp - 0x24], 0
xor eax, eax
test di, di
je 0x1009ef5f
mov edx, dword [ebp - 0x24]
sub edx, eax
add dx, word [ecx + 0x2c]
mov eax, edx
mov esi, dword [ebp - 0x18]
jmp 0x1009e59f
xor ebx, ebx
xor eax, eax
test di, di
je 0x1009ef78
sub ebx, eax
add bx, word [ecx + 0x2c]
mov eax, ebx
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp + 8]
jmp 0x1009e64d