Function at 0x10091a7a
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x101c0814]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [eax + 0x3c]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x28], edi
movzx ecx, word [edi + 0x32]
mov eax, ecx
mov dword [edi + 0x44], 0xffffffc0
shl eax, 6
mov dword [edi + 0x4c], eax
xor eax, eax
mov esi, eax
mov dword [ebp - 0x60], esi
test ecx, ecx
je 0x10093674
mov dword [ebp - 0x64], 0x7fff
movzx edx, word [edi + 0x30]
lea eax, [esi + 1]
mov dword [edi + 0x78], 0x2020202
mov dword [edi + 0x40], 0xffffffc0
lea ecx, [edx + 1]
imul ecx, eax
mov eax, edx
imul eax, esi
inc ecx
mov dword [ebp - 0x58], eax
mov eax, edx
imul ecx, ecx, 0x60
shl eax, 6
mov dword [edi + 0x48], eax
xor eax, eax
mov dword [ebp - 0x5c], eax
add ecx, dword [edi + 0x11e0]
mov dword [ebp - 0x34], ecx
test edx, edx
je 0x1009365c
lea esi, [edi + 0xc4]
cmp dword [ebp - 0x60], 0
jne 0x10091b25
movzx eax, word [edi + 0x30]
imul eax, eax, 0x60
sub ecx, eax
mov dword [ecx - 0x48], 0x2020202
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10091b3d
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x10091b3d
mov ecx, dword [ecx + 4]
mov edx, dword [ebp - 0x58]
add ecx, edx
jmp 0x10091b44
mov edx, dword [ebp - 0x58]
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
add eax, edx
cmp byte [edi + 0x62], 0
mov dword [ebp - 0x3c], eax
je 0x10091c7a
mov al, byte [edi + 0xd8]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
mov dword [ebp - 0x20], edi
js 0x10091ba7
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10091ba7
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov dword [ebp - 0x20], edi
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], edi
mov edi, dword [esi]
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x44], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
cmp edx, dword [ebp - 0x44]
jb 0x10091bd3
sub edi, ecx
jmp 0x10091bd5
mov edi, ecx
mov ecx, dword [ebp - 0x28]
mov eax, edx
sub eax, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x44]
mov dword [esi], edi
cmovae edx, eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x10], edx
mov al, byte [eax + ecx + 0xd9]
movzx ecx, byte [edi + 0x10190df0]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x20]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x10091c28
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10091c28
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x38], eax
sbb eax, eax
add eax, 1
mov dword [ebp - 0x1c], eax
je 0x10091c53
sub edi, ecx
jmp 0x10091c55
mov edi, ecx
mov ecx, dword [ebp - 0x1c]
mov eax, edx
sub eax, dword [ebp - 0x38]
test ecx, ecx
mov dword [esi], edi
mov edi, dword [ebp - 0x28]
cmovne edx, eax
mov eax, dword [ebp - 0x24]
add al, al
mov dword [esi + 0x10], edx
add al, cl
mov ecx, dword [ebp - 0x3c]
mov byte [ecx], al
mov eax, ecx
jmp 0x10091c8e
cmp byte [edi + 0x60], 0
je 0x10091c8e
test ecx, ecx
je 0x10091c89
movzx ecx, byte [ecx]
jmp 0x10091c8c
movzx ecx, byte [eax]
mov byte [eax], cl
mov ecx, dword [ebp - 0x34]
mov al, byte [eax]
mov byte [ecx + 5], al
cmp byte [edi + 0x3e], 0
je 0x10091d2a
mov al, byte [edi + 0xdb]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10091ce5
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10091ce5
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
cmp edx, edi
jb 0x10091d0d
mov eax, dword [esi]
sub eax, ecx
jmp 0x10091d0f
mov eax, ecx
mov ecx, dword [ebp - 0x34]
mov dword [esi], eax
mov eax, edx
sub eax, edi
cmp edx, edi
mov edi, dword [ebp - 0x28]
cmovae edx, eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x10], edx
xor edx, edx
jmp 0x10091d2e
xor edx, edx
mov eax, edx
mov byte [ecx], al
cmp byte [edi + 0x3c], 0
je 0x10091fe6
mov eax, edx
mov dword [ebp - 0x44], eax
mov al, byte [eax + 0x10190fa8]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10091d84
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10091d84
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
cmp edx, edi
jb 0x10091dac
mov eax, dword [esi]
sub eax, ecx
jmp 0x10091dae
mov eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [esi], eax
mov eax, edx
sub eax, edi
cmp edx, edi
cmovae edx, eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x10], edx
movsx eax, byte [ecx + eax*2 + 0x10190ef4]
mov dword [ebp - 0x44], eax
test eax, eax
jg 0x10091d3f
mov edx, dword [ebp - 0x34]
neg al
mov byte [edx + 1], al
cmp al, 4
jne 0x10091f08
mov edi, dword [ebp - 0x28]
lea eax, [edx + 6]
mov dword [ebp - 0x20], eax
mov ecx, edx
movzx eax, word [edi + 0x30]
imul eax, eax, 0x60
sub ecx, eax
mov eax, dword [ecx - 0x48]
mov dword [edx + 0x18], eax
xor eax, eax
mov edx, eax
mov dword [ebp - 0x40], edx
jmp 0x10091e0a
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x34]
movzx eax, byte [ecx + eax + 0x18]
imul ecx, eax, 0xa
movzx eax, byte [edx + edi + 0x78]
add ecx, eax
imul ecx, ecx, 9
add ecx, 0x10190fe0
xor eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], eax
mov al, byte [eax + ecx]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10091e74
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10091e74
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], edi
mov edi, dword [esi]
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x44], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
cmp edx, dword [ebp - 0x44]
jb 0x10091ea0
sub edi, ecx
jmp 0x10091ea2
mov edi, ecx
mov ecx, dword [ebp - 0x38]
mov eax, edx
sub eax, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x44]
mov dword [esi], edi
cmovae edx, eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x10], edx
movsx eax, byte [ecx + eax*2 + 0x10190fb0]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
test eax, eax
jg 0x10091e32
mov edi, dword [ebp - 0x20]
neg al
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
inc dword [ebp - 0x20]
mov byte [edi], al
mov edi, dword [ebp - 0x28]
mov byte [ecx + edx + 0x18], al
inc ecx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ecx
mov byte [edx + edi + 0x78], al
cmp ecx, 4
jl 0x10091e0f
inc edx
mov dword [ebp - 0x40], edx
cmp edx, 4
jl 0x10091e08
jmp 0x10091f39
mov edx, dword [ebp - 0x28]
movzx eax, al
movzx eax, byte [eax + 0x10190ef0]
imul ecx, eax, 0x1010101
xor eax, eax
cmp dword [edx + 0x156c], eax
je 0x10091f2d
mov eax, dword [ebp - 0x34]
mov dword [eax + 0x18], ecx
jmp 0x10091f36
mov eax, dword [edx + 0x74]
mov edi, dword [ebp - 0x5c]
mov dword [eax + edi*4], ecx
mov dword [edx + 0x78], ecx
xor eax, eax
mov dword [ebp - 0x44], eax
mov al, byte [eax + 0x10190fcc]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10091f83
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10091f83
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
cmp edx, edi
jb 0x10091fab
mov eax, dword [esi]
sub eax, ecx
jmp 0x10091fad
mov eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [esi], eax
mov eax, edx
sub eax, edi
cmp edx, edi
cmovae edx, eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x10], edx
movsx eax, byte [ecx + eax*2 + 0x10190fc4]
mov dword [ebp - 0x44], eax
test eax, eax
jg 0x10091f3e
mov ecx, dword [ebp - 0x34]
neg al
mov byte [ecx + 4], al
xor eax, eax
mov byte [ecx + 2], al
jmp 0x10093632
movzx eax, byte [edi + 0xdc]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x1009202c
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x1009202c
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
mov dword [esi + 4], edi
lea eax, [ecx - 1]
imul eax, dword [ebp - 0x38]
sar eax, 8
inc eax
mov dword [ebp - 0x40], eax
shl dword [ebp - 0x40], 0x10
cmp edx, dword [ebp - 0x40]
jb 0x100933fe
sub edx, dword [ebp - 0x40]
sub ecx, eax
mov eax, dword [ebp - 0x28]
mov dword [esi], ecx
mov dword [esi + 0x10], edx
mov dword [ebp - 0x38], ecx
movzx eax, byte [eax + 0xdd]
movzx ecx, byte [ecx + 0x10190df0]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
shl eax, cl
shl edx, cl
add ecx, edi
mov dword [esi], eax
mov dword [ebp - 0x44], ecx
js 0x100920a1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100920a1
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x44], ecx
mov edi, dword [esi]
mov dword [esi + 4], ecx
lea eax, [edi - 1]
imul eax, dword [ebp - 0x1c]
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x10092145
sub edi, eax
sub edx, ecx
mov eax, dword [ebp - 0x28]
mov dword [esi], edi
mov dword [esi + 0x10], edx
movzx ecx, byte [edi + 0x10190df0]
mov al, byte [eax + 0xde]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x44]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x10092106
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092106
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
mov ecx, dword [esi]
dec ecx
imul ecx, eax
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
jb 0x10092126
mov eax, dword [esi]
sub eax, ecx
jmp 0x10092128
mov eax, ecx
mov dword [esi], eax
mov ecx, edx
sub ecx, edi
mov eax, edx
cmp edx, edi
mov edi, dword [ebp - 0x34]
cmovae eax, ecx
mov dword [esi + 0x10], eax
sbb eax, eax
add eax, 3
mov byte [edi + 2], al
jmp 0x10092151
mov edi, dword [ebp - 0x34]
mov dword [esi], eax
mov dword [esi + 0x10], edx
mov byte [edi + 2], 1
mov edx, dword [ebp - 0x28]
movzx eax, byte [edi + 2]
inc dword [edx + eax*4 + 0x50]
xor eax, eax
mov ecx, eax
movzx eax, byte [edi + 2]
movsx edi, byte [eax + edx + 0x50]
xor eax, eax
mov dl, al
mov word [ebp - 0x4b], ax
mov byte [ebp - 0x49], al
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x2a], dl
mov byte [ebp - 0x4c], dl
mov edx, dword [ebp - 0x34]
movzx eax, word [eax + 0x30]
imul eax, eax, 0x60
mov dword [ebp - 0x44], edi
sub edx, eax
sub edx, 0x60
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x34]
sub edx, eax
xor eax, eax
sub edx, 0xc0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
movzx eax, byte [edx + 2]
test eax, eax
je 0x10092200
mov edx, dword [edx + 0x1c]
test edx, edx
je 0x100921ef
mov ecx, dword [ebp - 0x28]
movsx eax, byte [eax + ecx + 0x50]
cmp edi, eax
je 0x100921df
not edx
mov eax, edx
and edx, 0x80008000
and eax, 0x7fff7fff
add eax, 0x10001
xor edx, eax
mov al, byte [ebp - 0x4b]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x10], edx
add al, 2
mov byte [ebp - 0x4b], al
jmp 0x10092203
mov ah, byte [ebp - 0x2a]
mov al, byte [ebp - 0x4b]
add ah, 2
mov byte [ebp - 0x2a], ah
mov byte [ebp - 0x4c], ah
jmp 0x10092206
mov al, byte [ebp - 0x4b]
mov ah, byte [ebp - 0x2a]
mov edx, dword [ebp - 0x34]
mov byte [ebp - 0x29], al
movzx edi, byte [edx - 0x5e]
test edi, edi
je 0x10092262
mov edx, dword [edx - 0x44]
test edx, edx
je 0x10092259
mov eax, dword [ebp - 0x28]
movsx eax, byte [edi + eax + 0x50]
cmp dword [ebp - 0x44], eax
je 0x1009223e
not edx
mov eax, edx
and edx, 0x80008000
and eax, 0x7fff7fff
add eax, 0x10001
xor edx, eax
cmp edx, dword [ebp + ecx*4 - 0x14]
je 0x10092249
inc ecx
mov dword [ebp + ecx*4 - 0x14], edx
add byte [ebp + ecx - 0x4c], 2
mov al, byte [ebp - 0x4b]
mov ah, byte [ebp - 0x4c]
mov byte [ebp - 0x29], al
jmp 0x1009225f
add ah, 2
mov byte [ebp - 0x4c], ah
mov byte [ebp - 0x2a], ah
mov edx, dword [ebp - 0x3c]
movzx edi, byte [edx + 2]
test edi, edi
je 0x100922b9
mov edx, dword [edx + 0x1c]
test edx, edx
je 0x100922b4
mov eax, dword [ebp - 0x28]
movsx eax, byte [edi + eax + 0x50]
cmp dword [ebp - 0x44], eax
je 0x10092297
not edx
mov eax, edx
and edx, 0x80008000
and eax, 0x7fff7fff
add eax, 0x10001
xor edx, eax
cmp edx, dword [ebp + ecx*4 - 0x14]
je 0x100922a2
inc ecx
mov dword [ebp + ecx*4 - 0x14], edx
inc byte [ebp + ecx - 0x4c]
mov dl, byte [ebp - 0x4b]
mov ah, byte [ebp - 0x4c]
mov byte [ebp - 0x29], dl
mov byte [ebp - 0x2a], ah
jmp 0x100922bc
inc ah
mov byte [ebp - 0x2a], ah
mov dl, byte [ebp - 0x29]
mov ecx, dword [ebp - 0x34]
movzx eax, ah
shl eax, 4
mov byte [ecx + 3], 4
mov edi, dword [esi + 0x10]
mov eax, dword [eax + 0x101917e0]
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
mov dword [esi], eax
mov eax, dword [esi + 4]
shl edi, cl
add eax, ecx
mov dword [ebp - 0x20], eax
js 0x10092319
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092316
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x20]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edi, eax
mov eax, ecx
sub eax, 0x10
jmp 0x10092319
mov eax, dword [ebp - 0x20]
mov ecx, dword [esi]
mov dword [esi + 4], eax
lea eax, [ecx - 1]
imul eax, dword [ebp - 0x38]
sar eax, 8
inc eax
mov dword [ebp - 0x40], eax
shl dword [ebp - 0x40], 0x10
cmp edi, dword [ebp - 0x40]
jb 0x100933e8
sub edi, dword [ebp - 0x40]
sub ecx, eax
cmp byte [ebp - 0x49], 0
mov eax, dword [ebp - 0x34]
mov dword [esi], ecx
mov ecx, dword [ebp - 0x10]
mov dword [esi + 0x10], edi
mov byte [eax + 1], 6
je 0x1009235d
cmp ecx, dword [ebp - 8]
jne 0x1009235d
inc dl
mov byte [ebp - 0x29], dl
mov al, byte [ebp - 0x4a]
mov byte [ebp - 0x15], al
cmp al, dl
jbe 0x10092378
mov byte [ebp - 0x15], dl
mov dl, al
mov eax, dword [ebp - 0xc]
mov byte [ebp - 0x29], dl
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
mov edi, dword [esi + 4]
movzx eax, dl
mov edx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + 0x101917e4]
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x100923c3
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100923c3
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
mov dword [esi + 4], edi
lea eax, [ecx - 1]
imul eax, dword [ebp - 0x38]
sar eax, 8
inc eax
mov dword [ebp - 0x40], eax
shl dword [ebp - 0x40], 0x10
cmp edx, dword [ebp - 0x40]
jb 0x10093349
sub edx, dword [ebp - 0x40]
sub ecx, eax
movzx eax, byte [ebp - 0x15]
shl eax, 4
mov dword [ebp - 0x38], ecx
mov dword [esi], ecx
mov dword [esi + 0x10], edx
mov eax, dword [eax + 0x101917e8]
movzx ecx, byte [ecx + 0x10190df0]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
shl eax, cl
shl edx, cl
add ecx, edi
mov dword [esi], eax
js 0x10092435
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092435
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov edi, dword [esi]
mov dword [esi + 4], ecx
lea eax, [edi - 1]
imul eax, dword [ebp - 0x1c]
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x100932c4
sub edi, eax
sub edx, ecx
mov al, byte [ebp - 0x29]
cmp al, byte [ebp - 0x2a]
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x10], edx
mov edx, 0xffff8000
mov dword [esi], edi
sbb edi, edi
mov ecx, dword [eax + 0x48]
cmp ecx, edx
jge 0x10092476
mov ecx, edx
jmp 0x10092480
cmp ecx, 0x7fff
cmovg ecx, dword [ebp - 0x64]
mov eax, dword [eax + 0x40]
cmp eax, edx
jge 0x1009248b
mov eax, edx
jmp 0x10092495
mov edx, 0x7fff
cmp eax, edx
cmovg eax, edx
movsx edx, word [ebp + edi*4 - 0x10]
cmp edx, eax
jl 0x100924a5
cmp edx, ecx
mov eax, edx
cmovg eax, ecx
mov ecx, dword [ebp - 0x34]
mov edx, 0xffff8000
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x4c]
cmp ecx, edx
jge 0x100924bf
mov ecx, edx
jmp 0x100924c9
cmp ecx, 0x7fff
cmovg ecx, dword [ebp - 0x64]
mov eax, dword [eax + 0x44]
cmp eax, edx
jge 0x100924d4
mov eax, edx
jmp 0x100924de
mov edx, 0x7fff
cmp eax, edx
cmovg eax, edx
movsx edx, word [ebp + edi*4 - 0xe]
cmp edx, eax
jl 0x100924ee
cmp edx, ecx
mov eax, edx
cmovg eax, ecx
mov ecx, dword [ebp - 0x34]
mov word [ecx + 0x1e], ax
cmp byte [ecx - 0x5f], 7
mov eax, dword [ebp - 0x24]
setne cl
mov edx, dword [esi + 0x10]
dec cl
mov edi, dword [esi + 4]
and cl, 2
cmp byte [eax + 1], 7
setne al
dec al
and al, 2
add cl, al
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 1], 7
sete al
add cl, al
movzx eax, cl
shl eax, 4
mov eax, dword [eax + 0x101917ec]
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10092568
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092568
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov dword [esi + 4], edi
mov edi, dword [esi]
lea eax, [edi - 1]
imul eax, dword [ebp - 0x38]
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x1009328c
sub edi, eax
sub edx, ecx
mov ecx, dword [ebp - 0x34]
mov dword [esi], edi
mov dword [esi + 0x10], edx
mov byte [ecx + 1], 7
movzx eax, byte [ecx - 0x5d]
shl eax, 4
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
movzx eax, word [eax + 0x30]
inc eax
imul eax, eax, 0x60
sub ecx, eax
mov dword [ebp - 0x54], ecx
movzx eax, byte [ecx + 3]
shl eax, 4
mov dword [ebp - 0x50], eax
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
mov dword [ebp - 0x44], edi
js 0x100925fb
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100925fb
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov dword [ebp - 0x44], edi
mov dword [esi + 4], edi
mov edi, dword [esi]
imul eax, edi, 0x6e
sub eax, 0x6e
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x100926e9
sub edi, eax
sub edx, ecx
mov dword [esi], edi
mov dword [esi + 0x10], edx
movzx ecx, byte [edi + 0x10190df0]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x44]
mov dword [esi], edi
mov dword [ebp - 0x44], ecx
js 0x10092659
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092659
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x44], ecx
mov edi, dword [esi]
imul eax, edi, 0x6f
mov dword [esi + 4], ecx
sub eax, 0x6f
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x100926e5
sub edi, eax
sub edx, ecx
mov dword [esi], edi
mov dword [esi + 0x10], edx
movzx ecx, byte [edi + 0x10190df0]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x44]
mov dword [esi], edi
js 0x100926ad
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100926ad
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
imul eax, eax, 0x96
mov dword [esi + 4], ecx
sub eax, 0x96
sar eax, 8
inc eax
mov edi, eax
shl edi, 0x10
cmp edx, edi
sbb ecx, ecx
inc ecx
cmp edx, edi
jb 0x100926d8
sub dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [esi], eax
mov eax, edx
sub eax, edi
cmp edx, edi
cmovae edx, eax
jmp 0x100926ee
push 2
jmp 0x100926eb
push 3
pop ecx
mov dword [esi], eax
movzx eax, byte [ecx + 0x10191840]
mov edi, dword [ebp - 0x34]
mov dword [esi + 0x10], edx
mov edx, ecx
mov dword [ebp - 0x44], eax
xor eax, eax
shl edx, 4
mov dword [ebp - 0x38], edx
mov byte [edi + 3], cl
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x44], eax
jbe 0x1009327a
movzx ecx, byte [eax + edx + 0x10190f58]
test cl, 3
jne 0x10092735
mov eax, dword [ebp - 0x6c]
movzx eax, byte [ecx + eax + 0x10190f0b]
mov edx, dword [edi + eax*4 - 0x40]
jmp 0x10092741
movzx eax, byte [ecx + edx + 0x10190f07]
mov edx, dword [edi + eax*4 + 0x20]
mov dword [ebp - 0x20], edx
cmp ecx, 3
ja 0x1009275d
mov eax, dword [ebp - 0x50]
movzx eax, byte [ecx + eax + 0x10190f14]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + eax*4 + 0x20]
jmp 0x1009276c
mov eax, dword [ebp - 0x38]
movzx eax, byte [ecx + eax + 0x10190f04]
mov eax, dword [edi + eax*4 + 0x20]
mov dword [ebp - 0x1c], eax
cmp edx, eax
jne 0x1009277f
mov edi, 0x10190fa1
mov eax, 0x10190fa4
jmp 0x10092794
test eax, eax
jne 0x1009278a
mov edi, 0x10190f9e
jmp 0x10092799
mov edi, 0x10190f98
mov eax, 0x10190f9b
test edx, edx
cmove edi, eax
movzx eax, byte [edi]
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
mov dword [esi], eax
mov eax, dword [esi + 4]
shl edx, cl
add eax, ecx
mov dword [ebp - 0x30], eax
js 0x100927e9
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100927e6
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x30]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
mov eax, ecx
sub eax, 0x10
mov dword [ebp - 0x30], eax
jmp 0x100927e9
mov eax, dword [ebp - 0x30]
mov ecx, dword [esi]
mov dword [esi + 4], eax
lea eax, [ecx - 1]
imul eax, dword [ebp - 0x24]
sar eax, 8
inc eax
mov dword [ebp - 0x3c], eax
shl dword [ebp - 0x3c], 0x10
cmp edx, dword [ebp - 0x3c]
jb 0x10093255
sub edx, dword [ebp - 0x3c]
sub ecx, eax
mov dword [esi], ecx
mov dword [esi + 0x10], edx
movzx eax, byte [edi + 1]
mov dword [ebp - 0x20], ecx
movzx ecx, byte [ecx + 0x10190df0]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
shl eax, cl
shl edx, cl
add ecx, dword [ebp - 0x30]
mov dword [esi], eax
mov dword [ebp - 0x20], ecx
js 0x10092859
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092859
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x20], ecx
mov dword [esi + 4], ecx
mov ecx, dword [esi]
lea eax, [ecx - 1]
imul eax, dword [ebp - 0x24]
sar eax, 8
inc eax
mov dword [ebp - 0x3c], eax
shl dword [ebp - 0x3c], 0x10
cmp edx, dword [ebp - 0x3c]
jb 0x1009324e
sub edx, dword [ebp - 0x3c]
sub ecx, eax
mov dword [esi], ecx
mov dword [esi + 0x10], edx
movzx eax, byte [edi + 2]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [ecx + 0x10190df0]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x100928c7
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100928c7
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
dec eax
imul eax, dword [ebp - 0x24]
mov dword [esi + 4], edi
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x1009323c
sub dword [ebp - 0x20], eax
sub edx, ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
and dword [ebp - 0x30], 0
mov dword [esi], eax
mov dword [esi + 0x10], edx
movzx ecx, byte [ecx + 0x926]
mov dword [ebp - 0x1c], ecx
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add ecx, edi
mov dword [esi], eax
mov dword [ebp - 0x24], ecx
js 0x1009293b
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x1009293b
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x24], ecx
mov edi, dword [esi]
mov dword [esi + 4], ecx
lea eax, [edi - 1]
imul eax, dword [ebp - 0x1c]
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x10092b43
sub edx, ecx
sub edi, eax
xor eax, eax
mov dword [esi], edi
mov dword [esi + 0x10], edx
mov ecx, eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [eax + ecx + 0x92f]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x100929b1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100929b1
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], edi
mov edi, dword [esi]
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x20], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
cmp edx, dword [ebp - 0x20]
jb 0x100929dd
sub edi, ecx
jmp 0x100929df
mov edi, ecx
mov ecx, dword [ebp - 0x24]
mov eax, edx
sub eax, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x20]
mov dword [esi], edi
cmovae edx, eax
mov eax, dword [ebp - 0x1c]
shl eax, cl
add dword [ebp - 0x30], eax
inc ecx
mov dword [esi + 0x10], edx
mov dword [ebp - 0x24], ecx
cmp ecx, 3
jl 0x10092968
push 9
pop ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [eax + ecx + 0x92f]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
mov dword [ebp - 0x3c], edi
js 0x10092a5c
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092a5c
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov dword [ebp - 0x3c], edi
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], edi
mov edi, dword [esi]
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x20], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
cmp edx, dword [ebp - 0x20]
jb 0x10092a88
sub edi, ecx
jmp 0x10092a8a
mov edi, ecx
mov ecx, dword [ebp - 0x24]
mov eax, edx
sub eax, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x20]
mov dword [esi], edi
cmovae edx, eax
mov eax, dword [ebp - 0x1c]
shl eax, cl
add dword [ebp - 0x30], eax
dec ecx
mov dword [esi + 0x10], edx
mov dword [ebp - 0x24], ecx
cmp ecx, 3
jg 0x10092a0d
mov ecx, dword [ebp - 0x30]
test ecx, 0xfff0
je 0x10092b3b
mov eax, dword [ebp - 0x28]
movzx ecx, byte [edi + 0x10190df0]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x3c]
mov al, byte [eax + 0x932]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x10092afc
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092afc
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
mov dword [ebp - 0x1c], eax
cmp edx, eax
jb 0x10092b1f
sub edi, ecx
jmp 0x10092b21
mov edi, ecx
mov ecx, edx
mov dword [esi], edi
sub ecx, eax
cmp edx, dword [ebp - 0x1c]
mov eax, edx
cmovae eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [esi + 0x10], eax
jb 0x10092cfb
add ecx, 8
jmp 0x10092cf8
mov ecx, dword [ebp - 0x28]
add ecx, 0x928
mov dword [esi], eax
mov dword [esi + 0x10], edx
mov dword [ebp - 0x20], ecx
mov cl, byte [ecx]
mov byte [ebp - 0x15], cl
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add ecx, dword [ebp - 0x24]
mov dword [esi], eax
mov dword [ebp - 0x1c], ecx
js 0x10092b92
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092b92
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x1c], ecx
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
mov dword [ebp - 0x24], eax
cmp edx, eax
jb 0x10092bb5
sub edi, ecx
jmp 0x10092bb7
mov edi, ecx
mov eax, edx
mov dword [esi], edi
sub eax, dword [ebp - 0x24]
mov ecx, edx
cmp edx, dword [ebp - 0x24]
cmovae ecx, eax
sbb eax, eax
and eax, 0xfffffffd
mov dword [ebp - 0x3c], ecx
add eax, 4
mov dword [esi + 0x10], ecx
add dword [ebp - 0x20], eax
cmp edx, dword [ebp - 0x24]
movzx ecx, byte [edi + 0x10190df0]
mov edx, dword [ebp - 0x3c]
sbb eax, eax
and eax, 0xfffffffc
shl edi, cl
add eax, 4
shl edx, cl
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x1c], ecx
mov al, byte [eax]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x10092c2f
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092c2f
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x1c], ecx
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
mov dword [ebp - 0x24], eax
cmp edx, eax
jb 0x10092c52
sub edi, ecx
jmp 0x10092c54
mov edi, ecx
mov ecx, dword [ebp - 0x3c]
mov eax, edx
sub eax, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x24]
mov dword [esi], edi
cmovae edx, eax
sbb eax, eax
and eax, 0xfffffffe
mov dword [esi + 0x10], edx
add eax, 2
add dword [ebp - 0x30], eax
cmp ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sbb eax, eax
mov al, byte [eax + ecx + 2]
movzx ecx, byte [edi + 0x10190df0]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x1c]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x10092cb4
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092cb4
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x1c], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
cmp edx, dword [ebp - 0x1c]
jb 0x10092ce0
sub edi, ecx
jmp 0x10092ce2
mov edi, ecx
mov ecx, dword [ebp - 0x30]
mov eax, edx
sub eax, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x1c]
mov dword [esi], edi
cmovae edx, eax
add ecx, dword [ebp - 0x20]
mov dword [esi + 0x10], edx
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x10092d84
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [eax + 0x927]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10092d4b
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092d4b
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
jb 0x10092d6b
mov eax, dword [esi]
sub eax, ecx
jmp 0x10092d6d
mov eax, ecx
mov ecx, edx
mov dword [esi], eax
sub ecx, edi
mov eax, edx
cmp edx, edi
cmovae eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [esi + 0x10], eax
jb 0x10092d84
neg ecx
mov edx, dword [ebp - 0x34]
mov ax, word [edx + 0x1e]
add ax, cx
mov ecx, dword [ebp - 0x40]
mov word [edx + ecx*4 + 0x22], ax
xor eax, eax
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax + 0x939]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10092de4
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092de4
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov eax, dword [esi]
dec eax
mov dword [esi + 4], edi
imul eax, dword [ebp - 0x1c]
sar eax, 8
inc eax
mov ecx, eax
shl ecx, 0x10
cmp edx, ecx
jb 0x10092fe8
sub dword [esi], eax
sub edx, ecx
xor eax, eax
mov dword [esi + 0x10], edx
mov ecx, eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [eax + ecx + 0x942]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10092e56
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092e56
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], edi
mov edi, dword [esi]
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x1c], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
cmp edx, dword [ebp - 0x1c]
jb 0x10092e82
sub edi, ecx
jmp 0x10092e84
mov edi, ecx
mov ecx, dword [ebp - 0x20]
mov eax, edx
sub eax, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x1c]
mov dword [esi], edi
cmovae edx, eax
mov eax, dword [ebp - 0x24]
shl eax, cl
add dword [ebp - 0x30], eax
inc ecx
mov dword [esi + 0x10], edx
mov dword [ebp - 0x20], ecx
cmp ecx, 3
jl 0x10092e0d
push 9
pop ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [eax + ecx + 0x942]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
mov dword [ebp - 0x24], edi
js 0x10092f01
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092f01
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov dword [ebp - 0x24], edi
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], edi
mov edi, dword [esi]
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x1c], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x3c], eax
cmp edx, dword [ebp - 0x1c]
jb 0x10092f2d
sub edi, ecx
jmp 0x10092f2f
mov edi, ecx
mov ecx, dword [ebp - 0x20]
mov eax, edx
sub eax, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x1c]
mov dword [esi], edi
cmovae edx, eax
mov eax, dword [ebp - 0x3c]
shl eax, cl
add dword [ebp - 0x30], eax
dec ecx
mov dword [esi + 0x10], edx
mov dword [ebp - 0x20], ecx
cmp ecx, 3
jg 0x10092eb2
mov ecx, dword [ebp - 0x30]
test ecx, 0xfff0
je 0x10092fe0
mov eax, dword [ebp - 0x28]
movzx ecx, byte [edi + 0x10190df0]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x24]
mov al, byte [eax + 0x945]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x10092fa1
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10092fa1
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
mov dword [ebp - 0x1c], eax
cmp edx, eax
jb 0x10092fc4
sub edi, ecx
jmp 0x10092fc6
mov edi, ecx
mov ecx, edx
mov dword [esi], edi
sub ecx, eax
cmp edx, dword [ebp - 0x1c]
mov eax, edx
cmovae eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [esi + 0x10], eax
jb 0x1009319f
add ecx, 8
jmp 0x1009319c
mov ecx, dword [ebp - 0x28]
add ecx, 0x93b
mov dword [esi], eax
mov dword [esi + 0x10], edx
mov dword [ebp - 0x3c], ecx
mov cl, byte [ecx]
mov byte [ebp - 0x15], cl
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add ecx, edi
mov dword [esi], eax
mov dword [ebp - 0x1c], ecx
js 0x10093036
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10093036
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x1c], ecx
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
mov dword [ebp - 0x24], eax
cmp edx, eax
jb 0x10093059
sub edi, ecx
jmp 0x1009305b
mov edi, ecx
mov eax, edx
mov dword [esi], edi
sub eax, dword [ebp - 0x24]
mov ecx, edx
cmp edx, dword [ebp - 0x24]
cmovae ecx, eax
sbb eax, eax
and eax, 0xfffffffd
mov dword [ebp - 0x20], ecx
add eax, 4
mov dword [esi + 0x10], ecx
add dword [ebp - 0x3c], eax
cmp edx, dword [ebp - 0x24]
movzx ecx, byte [edi + 0x10190df0]
mov edx, dword [ebp - 0x20]
sbb eax, eax
and eax, 0xfffffffc
shl edi, cl
add eax, 4
shl edx, cl
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
mov al, byte [eax]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x100930d3
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100930d3
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
mov dword [ebp - 0x24], eax
cmp edx, eax
jb 0x100930f6
sub edi, ecx
jmp 0x100930f8
mov edi, ecx
mov ecx, dword [ebp - 0x20]
mov eax, edx
sub eax, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x24]
mov dword [esi], edi
cmovae edx, eax
sbb eax, eax
and eax, 0xfffffffe
mov dword [esi + 0x10], edx
add eax, 2
add dword [ebp - 0x30], eax
cmp ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
sbb eax, eax
mov al, byte [eax + ecx + 2]
movzx ecx, byte [edi + 0x10190df0]
shl edi, cl
shl edx, cl
add ecx, dword [ebp - 0x1c]
mov byte [ebp - 0x15], al
mov dword [esi], edi
js 0x10093158
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10093158
add dword [esi + 8], 2
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub ecx, 0x10
mov edi, dword [esi]
movzx eax, byte [ebp - 0x15]
mov dword [esi + 4], ecx
lea ecx, [edi - 1]
imul ecx, eax
sar ecx, 8
inc ecx
mov eax, ecx
shl eax, 0x10
cmp edx, eax
mov dword [ebp - 0x1c], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
cmp edx, dword [ebp - 0x1c]
jb 0x10093184
sub edi, ecx
jmp 0x10093186
mov edi, ecx
mov ecx, dword [ebp - 0x30]
mov eax, edx
sub eax, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x1c]
mov dword [esi], edi
cmovae edx, eax
add ecx, dword [ebp - 0x20]
mov dword [esi + 0x10], edx
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x10093228
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [eax + 0x93a]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x100931ef
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100931ef
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
jb 0x1009320f
mov eax, dword [esi]
sub eax, ecx
jmp 0x10093211
mov eax, ecx
mov ecx, edx
mov dword [esi], eax
sub ecx, edi
mov eax, edx
cmp edx, edi
cmovae eax, ecx
mov ecx, dword [ebp - 0x30]
mov dword [esi + 0x10], eax
jb 0x10093228
neg ecx
mov edi, dword [ebp - 0x34]
mov ax, word [edi + 0x1c]
add ax, cx
mov ecx, dword [ebp - 0x40]
mov word [edi + ecx*4 + 0x20], ax
jmp 0x10093267
mov edi, dword [ebp - 0x34]
mov dword [esi], eax
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x10], edx
and dword [edi + eax*4 + 0x20], 0
jmp 0x1009326a
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
jmp 0x1009325a
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x34]
mov dword [esi + 0x10], edx
mov dword [edi + ecx*4 + 0x20], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x38]
inc eax
mov dword [ebp - 0x40], eax
cmp eax, dword [ebp - 0x44]
jl 0x10092717
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x44]
mov eax, dword [ecx + eax*4 + 0x1c]
mov dword [ecx + 0x1c], eax
jmp 0x10093632
mov edi, dword [ebp - 0x28]
mov dword [esi], eax
mov dword [esi + 0x10], edx
lea eax, [edi + 0x926]
push eax
push esi
call fcn.1009402e
mov ecx, dword [ebp - 0x34]
add word [ecx + 0x1e], ax
lea eax, [edi + 0x939]
push eax
push esi
call fcn.1009402e
mov ecx, dword [ebp - 0x34]
add esp, 0x10
add word [ecx + 0x1c], ax
jmp 0x100933dd
mov dword [esi], eax
mov edi, 0x7fff
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x10], edx
mov edx, 0xffff8000
mov ecx, dword [eax + 0x48]
cmp ecx, edx
jge 0x100932e1
mov ecx, edx
jmp 0x100932e6
cmp ecx, edi
cmovg ecx, edi
mov eax, dword [eax + 0x40]
cmp eax, edx
jge 0x100932f1
mov eax, edx
jmp 0x100932f6
cmp eax, edi
cmovg eax, edi
mov edi, dword [ebp - 0xc]
movsx edx, di
cmp edx, eax
jl 0x10093307
cmp edx, ecx
mov eax, edx
cmovg eax, ecx
mov ecx, dword [ebp - 0x34]
mov edx, 0xffff8000
mov edi, dword [ebp - 0x28]
mov word [ecx + 0x1c], ax
mov ecx, dword [edi + 0x4c]
cmp ecx, edx
jge 0x10093321
mov ecx, edx
jmp 0x1009332b
mov eax, 0x7fff
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [edi + 0x44]
cmp eax, edx
jge 0x10093336
mov eax, edx
jmp 0x10093340
mov edx, 0x7fff
cmp eax, edx
cmovg eax, edx
movsx edx, word [ebp - 0xa]
jmp 0x100933cb
mov edi, dword [ebp - 0x28]
mov dword [esi + 0x10], edx
mov edx, 0xffff8000
mov dword [esi], eax
mov ecx, dword [edi + 0x48]
cmp ecx, edx
jge 0x10093361
mov ecx, edx
jmp 0x1009336b
mov eax, 0x7fff
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [edi + 0x40]
cmp eax, edx
jge 0x10093376
mov eax, edx
jmp 0x10093380
mov edx, 0x7fff
cmp eax, edx
cmovg eax, edx
mov edx, dword [ebp - 0x10]
movsx edx, dx
cmp edx, eax
jl 0x10093391
cmp edx, ecx
mov eax, edx
cmovg eax, ecx
mov ecx, dword [ebp - 0x34]
mov edx, 0xffff8000
mov word [ecx + 0x1c], ax
mov ecx, dword [edi + 0x4c]
cmp ecx, edx
jge 0x100933a8
mov ecx, edx
jmp 0x100933b2
mov eax, 0x7fff
cmp ecx, eax
cmovg ecx, eax
mov eax, dword [edi + 0x44]
cmp eax, edx
jge 0x100933bd
mov eax, edx
jmp 0x100933c7
mov edx, 0x7fff
cmp eax, edx
cmovg eax, edx
movsx edx, word [ebp - 0xe]
cmp edx, eax
jl 0x100933d6
cmp edx, ecx
mov eax, edx
cmovg eax, ecx
mov ecx, dword [ebp - 0x34]
mov word [ecx + 0x1e], ax
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x20], eax
jmp 0x10093635
mov ecx, dword [ebp - 0x34]
mov dword [esi], eax
xor eax, eax
mov dword [esi + 0x10], edi
mov byte [ecx + 1], 5
mov dword [ecx + 0x1c], eax
jmp 0x1009362f
mov dword [esi], eax
xor eax, eax
mov dword [esi + 0x10], edx
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [ecx + eax + 0xdf]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10093451
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10093451
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
sbb eax, eax
inc eax
mov dword [ebp - 0x50], eax
cmp edx, edi
jb 0x10093479
mov eax, dword [esi]
sub eax, ecx
jmp 0x1009347b
mov eax, ecx
mov ecx, dword [ebp - 0x50]
mov dword [esi], eax
mov eax, edx
sub eax, edi
cmp edx, edi
cmovae edx, eax
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x10], edx
movsx eax, byte [ecx + eax*2 + 0x10190efc]
mov dword [ebp - 0x38], eax
test eax, eax
jg 0x10093408
mov edx, dword [ebp - 0x34]
neg al
mov byte [edx + 1], al
cmp al, 4
jne 0x10093580
mov eax, dword [ebp - 0x28]
mov ecx, edx
movzx eax, word [eax + 0x30]
imul eax, eax, 0x60
sub ecx, eax
mov eax, dword [ecx - 0x48]
mov dword [edx + 0x18], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], eax
mov al, byte [eax + 0x10190fd4]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x10093513
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x10093513
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
sbb eax, eax
inc eax
mov dword [ebp - 0x50], eax
cmp edx, edi
jb 0x1009353b
mov eax, dword [esi]
sub eax, ecx
jmp 0x1009353d
mov eax, ecx
mov ecx, dword [ebp - 0x50]
mov dword [esi], eax
mov eax, edx
sub eax, edi
cmp edx, edi
cmovae edx, eax
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x10], edx
movsx eax, byte [ecx + eax*2 + 0x10190fb0]
mov dword [ebp - 0x38], eax
test eax, eax
jg 0x100934ce
mov ecx, dword [ebp - 0x1c]
neg al
mov edx, dword [ebp - 0x34]
push 0
mov byte [ecx + edx + 6], al
inc ecx
mov dword [ebp - 0x1c], ecx
pop eax
cmp ecx, 0x10
jl 0x100934cb
xor eax, eax
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov al, byte [ecx + eax + 0xe3]
mov byte [ebp - 0x15], al
mov eax, dword [esi]
movzx ecx, byte [eax + 0x10190df0]
shl eax, cl
shl edx, cl
add edi, ecx
mov dword [esi], eax
js 0x100935ce
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jae 0x100935ce
add dword [esi + 8], 2
mov ecx, edi
mov eax, dword [esi + 8]
mov ax, word [eax - 2]
ror ax, 8
movzx eax, ax
shl eax, cl
or edx, eax
sub edi, 0x10
mov ecx, dword [esi]
movzx eax, byte [ebp - 0x15]
dec ecx
imul ecx, eax
mov dword [esi + 4], edi
sar ecx, 8
inc ecx
mov edi, ecx
shl edi, 0x10
cmp edx, edi
sbb eax, eax
inc eax
mov dword [ebp - 0x50], eax
cmp edx, edi
jb 0x100935f6
mov eax, dword [esi]
sub eax, ecx
jmp 0x100935f8
mov eax, ecx
mov ecx, dword [ebp - 0x50]
mov dword [esi], eax
mov eax, edx
sub eax, edi
cmp edx, edi
cmovae edx, eax
mov eax, dword [ebp - 0x38]
mov dword [esi + 0x10], edx
movsx eax, byte [ecx + eax*2 + 0x10190fc4]
mov dword [ebp - 0x38], eax
test eax, eax
jg 0x10093585
mov ecx, dword [ebp - 0x34]
neg al
mov byte [ecx + 4], al
xor eax, eax
mov word [ecx + 2], 0x400
mov dword [ecx + 0x20], eax
mov edi, dword [ebp - 0x28]
add dword [edi + 0x40], 0xffffffc0
add ecx, 0x60
add dword [edi + 0x48], 0xffffffc0
mov edx, dword [ebp - 0x5c]
movzx eax, word [edi + 0x30]
inc edx
inc dword [ebp - 0x58]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x34], ecx
cmp edx, eax
jl 0x10091b0f
mov esi, dword [ebp - 0x60]
add dword [edi + 0x44], 0xffffffc0
add dword [edi + 0x4c], 0xffffffc0
inc esi
movzx eax, word [edi + 0x32]
mov dword [ebp - 0x60], esi
cmp esi, eax
jl 0x10091ac4
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.10132731
mov esp, ebp
pop ebp
ret