Function at 0x10080f06
Capabilities:
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov esi, ecx
mov ebp, dword [esp + 0x4c]
mov eax, dword [0x10259d1c]
xor eax, esp
mov dword [esp + 0x34], eax
lea eax, [ecx + 0x38]
mov dword [esp], eax
movzx eax, byte [ecx + 0x48]
nop word cs:[eax + eax]
lea ecx, [ebp - 0x10000]
cmp ecx, 0xd
ja case.default.0x10080edb
jmp dword [ecx*4 + 0x101b00fc]
lea ecx, [ebp - 0x30000]
cmp ecx, 0xd
ja case.0x10080eff.196618
jmp dword [ecx*4 + 0x101b0134]
and ebp, 0x20000
test al, al
je 0x10081075
or ebp, 0x10000
jmp 0x10080ed0
and ebp, 0x20000
test al, al
je 0x10081098
or ebp, 0x10001
jmp 0x10080ed0
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + 0x40]
cmp eax, ebx
jne 0x1008124c
mov eax, dword [esp]
mov edi, dword [eax]
cmp edi, ecx
jge 0x100820fd
lea ecx, [esi + 0x50]
mov edx, edi
push 0
push 1
call fcn.10086140
add esp, 8
test eax, eax
je 0x10080f7c
cmp dword [esi + 4], edi
jle 0x100821cb
mov ecx, dword [esi + 0xc]
movzx ecx, word [ecx + edi*2]
mov word [eax], cx
mov eax, dword [esi + 0xc]
lea ebx, [eax + edi*2]
lea eax, [eax + edi*2]
add eax, 2
push eax
push ebx
call fcn.10048cc0
add esp, 8
sub dword [esi + 0x28], eax
dec dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
movzx eax, word [ecx + edi*2 + 2]
test ax, ax
je 0x10080fc1
lea ecx, [ecx + edi*2]
add ecx, 4
nop dword [eax + eax]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10080fb0
mov word [ebx], 0
jmp 0x100820fd
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + 0x40]
cmp eax, ebx
jne 0x10081269
mov eax, dword [esp]
mov ebp, dword [eax]
cmp ebp, ecx
jle 0x10080fec
mov eax, dword [esp]
mov dword [eax], ecx
mov ebp, ecx
test ebp, ebp
jle 0x100820fd
lea ebx, [ebp - 1]
lea ecx, [esi + 0x50]
mov edx, ebx
push 0
push 1
call fcn.10086140
add esp, 8
test eax, eax
je 0x10081020
cmp dword [esi + 4], ebp
jl 0x100821cb
mov ecx, dword [esi + 0xc]
movzx ecx, word [ecx + ebp*2 - 2]
mov word [eax], cx
mov eax, dword [esi + 0xc]
lea edi, [eax + ebx*2]
lea eax, [eax + ebp*2]
push eax
push edi
call fcn.10048cc0
add esp, 8
sub dword [esi + 0x28], eax
dec dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
movzx eax, word [ecx + ebp*2]
test ax, ax
je 0x10081061
lea ecx, [ecx + ebp*2]
add ecx, 2
nop dword [eax + eax]
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10081050
mov word [edi], 0
mov ebp, dword [esp]
mov eax, dword [ebp]
dec eax
mov dword [ebp], eax
jmp 0x100820fd
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
test ebp, ebp
jne 0x1008159f
cmp eax, edx
jne 0x1008190a
mov eax, dword [esp]
mov eax, dword [eax]
mov ecx, dword [esi + 0x2c]
jmp 0x10081af8
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
test ebp, ebp
jne 0x100815b8
cmp eax, edx
jne 0x10081923
mov eax, dword [esp]
mov eax, dword [eax]
mov ecx, dword [esi + 0x2c]
jmp 0x10081c21
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
cmp edx, ecx
jne 0x100816ae
mov ecx, dword [esp]
mov edx, dword [ecx]
jmp 0x100816cb
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x40]
cmp ecx, eax
jne 0x100810e8
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x3c], ecx
mov eax, ecx
lea edx, [eax + 1]
mov dword [esi + 0x40], edx
cmp ecx, edx
jne 0x100816e5
mov edx, ecx
mov dword [esi + 0x38], ecx
jmp 0x100820fd
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
cmp ebx, edx
jne 0x10081700
mov edx, ebx
mov ebp, dword [esp]
jmp 0x1008171d
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x3c]
mov edi, dword [esi + 0x40]
cmp ebx, edi
jne 0x10081735
mov edi, ebx
mov ebp, dword [esp]
jmp 0x1008174e
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x10081144
mov eax, dword [esi + 0x38]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], 0
mov dword [esi + 0x38], 0
jmp 0x100820fd
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x10081165
mov eax, dword [esi + 0x38]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x40], eax
mov dword [esi + 0x38], eax
jmp 0x100820fd
mov ebx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x10081184
mov dword [esi + 0x40], ebx
mov dword [esi + 0x3c], ebx
mov ebp, dword [esp]
nop word [eax + eax]
mov eax, ebx
dec ebx
test eax, eax
jle 0x100811a4
mov ecx, esi
mov edx, ebx
call fcn.10086350
test eax, eax
je 0x10081190
xor ecx, ecx
test ebx, ebx
cmovg ecx, ebx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x40], ecx
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x3c]
cmp edx, ecx
je 0x10081509
cmp edx, eax
jle 0x100811c8
mov dword [esi + 0x3c], eax
mov edx, eax
mov edi, ecx
cmp ecx, eax
jle 0x10081500
mov dword [esi + 0x40], eax
mov edi, eax
jmp 0x10081500
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x40]
jne 0x100811ed
mov dword [esi + 0x40], ecx
mov dword [esi + 0x3c], ecx
mov ebp, dword [esi + 0x2c]
inc ecx
nop word cs:[eax + eax]
mov ebx, ecx
cmp ecx, ebp
jge 0x10081216
mov ecx, esi
mov edx, ebx
call fcn.10086350
lea ecx, [ebx + 1]
test eax, eax
je 0x10081200
cmp ebx, ebp
cmovl ebp, ebx
mov dword [esi + 0x38], ebp
mov dword [esi + 0x40], ebp
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x3c]
cmp ecx, ebp
je 0x1008157b
cmp ecx, eax
jle 0x10081238
mov dword [esi + 0x3c], eax
mov ecx, eax
mov edx, ebp
cmp ebp, eax
jle 0x10081570
mov dword [esi + 0x40], eax
mov edx, eax
jmp 0x10081570
cmp eax, ecx
mov ebp, dword [esp]
jle 0x10081285
mov dword [esi + 0x3c], ecx
mov eax, ecx
cmp ebx, ecx
jg 0x10081289
cmp eax, ebx
jne 0x10081292
mov dword [ebp], eax
mov edx, eax
mov ebx, eax
jmp 0x10081295
cmp eax, ecx
mov edi, dword [esp]
jle 0x100812b2
mov dword [esi + 0x3c], ecx
mov eax, ecx
cmp ebx, ecx
jg 0x100812b6
cmp eax, ebx
jne 0x100812bf
mov dword [edi], eax
mov edx, eax
mov ebx, eax
jmp 0x100812c1
cmp ebx, ecx
jle 0x1008125c
mov dword [esi + 0x40], ecx
mov ebx, ecx
cmp eax, ebx
je 0x10081260
mov edx, dword [ebp]
cmp edx, ecx
jle 0x1008129c
mov dword [ebp], ecx
mov edi, eax
sub edi, ebx
je 0x100820fd
jge 0x10081a2f
sub ebx, eax
mov ecx, esi
jmp 0x100812de
cmp ebx, ecx
jle 0x10081279
mov dword [esi + 0x40], ecx
mov ebx, ecx
cmp eax, ebx
je 0x1008127d
mov edx, dword [edi]
cmp edx, ecx
jle 0x100812c7
mov dword [edi], ecx
mov edi, eax
sub edi, ebx
je 0x100820fd
jge 0x10081a33
sub ebx, eax
mov ecx, esi
mov ebp, dword [esp]
mov edx, ebp
push ebx
push eax
call fcn.10086080
add esp, 8
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], eax
mov dword [ebp], eax
jmp 0x100820fd
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
cmp eax, ecx
jne 0x1008158d
mov ecx, dword [esp]
mov eax, dword [ecx]
test eax, eax
jle 0x100820fd
dec eax
mov dword [ecx], eax
jmp 0x100820fd
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
cmp ecx, edx
jne 0x100817d9
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x38]
inc eax
mov dword [esi + 0x38], eax
mov edi, dword [esp]
jmp 0x10081aa0
mov edi, dword [esi + 0x2c]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
cmp ecx, edx
jne 0x100817ec
mov edx, ecx
mov ebp, dword [esp]
jmp 0x1008180d
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x3c]
mov edi, dword [esi + 0x40]
cmp edx, edi
jne 0x10081883
mov edi, edx
mov ebp, dword [esp]
jmp 0x1008189c
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x38], 0
jmp 0x100820fd
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x38], eax
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
jmp 0x100820fd
movsx eax, word [esi + 0xe4e]
test eax, eax
je 0x100820fd
lea ebx, [esi + 0x50]
shl eax, 4
mov ebp, dword [eax + ebx - 0x10]
mov ecx, dword [eax + ebx - 0xc]
mov edi, dword [eax + ebx - 8]
mov edx, dword [eax + ebx - 4]
movsx eax, word [esi + 0xe50]
shl eax, 4
mov dword [eax + ebx - 4], 0xffffffff
mov dword [eax + ebx - 0xc], edi
mov dword [esp + 0x14], ecx
mov dword [eax + ebx - 8], ecx
mov dword [eax + ebx - 0x10], ebp
test edi, edi
je 0x100820bc
mov dword [esp + 0xc], edx
mov edx, dword [esi + 0xe54]
lea ecx, [edx + edi]
cmp ecx, 0x3e6
mov dword [esp], edi
jle 0x10081db8
add eax, ebx
add eax, 0xfffffff4
mov dword [eax], 0
jmp 0x10082055
movsx eax, word [esi + 0xe50]
cmp eax, 0x63
je 0x100820fd
movsx ecx, word [esi + 0xe4e]
shl ecx, 4
shl eax, 4
mov ebx, dword [esi + eax + 0x50]
mov edi, dword [esi + eax + 0x54]
mov edx, dword [esi + eax + 0x58]
mov eax, dword [esi + eax + 0x5c]
mov dword [esi + ecx + 0x58], edi
mov dword [esi + ecx + 0x54], edx
mov dword [esi + ecx + 0x50], ebx
mov dword [esi + ecx + 0x5c], 0xffffffff
test edx, edx
je 0x10081fae
mov dword [esp + 0x14], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
lea eax, [esi + ecx]
add eax, 0x54
mov edi, dword [esi + 0xe54]
mov dword [esp + 0xc], edx
lea ebx, [edi + edx]
cmp ebx, dword [esi + 0xe58]
jle 0x10081f0e
add ecx, esi
add ecx, 0x58
mov dword [eax], 0
mov dword [ecx], 0
jmp 0x10081f4e
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
cmp eax, ecx
jne 0x1008158d
mov ebp, dword [esp]
mov ebx, dword [ebp]
nop dword [eax]
mov eax, ebx
dec ebx
test eax, eax
jle 0x100814d4
mov ecx, esi
mov edx, ebx
call fcn.10086350
test eax, eax
je 0x100814c0
xor ecx, ecx
test ebx, ebx
cmovg ecx, ebx
mov dword [esi + 0x38], ecx
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x3c]
mov edi, dword [esi + 0x40]
cmp edx, edi
je 0x10081509
cmp edx, eax
jle 0x10081a52
mov dword [esi + 0x3c], eax
mov edx, eax
cmp edi, eax
jg 0x10081a5a
cmp edx, edi
jne 0x10081509
mov dword [ebp], edx
mov ecx, edx
cmp ecx, eax
jle 0x10082101
mov dword [ebp], eax
jmp 0x10082101
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
cmp edx, ecx
jne 0x100818d1
mov ebp, dword [esi + 0x2c]
mov ecx, dword [esi + 0x38]
inc ecx
nop
mov ebx, ecx
cmp ecx, ebp
jge 0x10081546
mov ecx, esi
mov edx, ebx
call fcn.10086350
lea ecx, [ebx + 1]
test eax, eax
je 0x10081530
cmp ebx, ebp
cmovl ebp, ebx
mov dword [esi + 0x38], ebp
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
cmp ecx, edx
je 0x1008157b
cmp ecx, eax
jle 0x10081a6c
mov dword [esi + 0x3c], eax
mov ecx, eax
cmp edx, eax
jg 0x10081a74
cmp ecx, edx
jne 0x1008157b
mov edx, dword [esp]
mov dword [edx], ecx
mov ebp, ecx
cmp ebp, eax
mov ecx, dword [esp]
jle 0x10082101
mov dword [ecx], eax
jmp 0x10082101
jle 0x10081594
mov dword [esi + 0x3c], ecx
mov eax, ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x40], eax
jmp 0x100820fd
cmp eax, edx
jne 0x10081933
mov eax, dword [esi + 0x38]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov ecx, dword [esi + 0x2c]
jmp 0x10081af8
cmp eax, edx
jne 0x1008195f
mov eax, dword [esi + 0x38]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov ecx, dword [esi + 0x2c]
jmp 0x10081c21
xor ecx, ecx
cmp ebp, 0x10000
cmovl ecx, ebp
test ecx, ecx
mov ebp, dword [esp]
jle 0x10082101
mov word [esp + 0x1c], cx
cmp ecx, 0xa
jne 0x100815f9
test al, al
jne 0x10082101
cmp byte [esi + 0x44], 0
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + 0x40]
je 0x10081ff0
cmp eax, ebx
jne 0x10081ff0
mov ebx, dword [esi + 0x38]
cmp ebx, dword [esi + 0x2c]
jge 0x10082127
lea ecx, [esi + 0x50]
mov edx, ebx
push 1
push 1
call fcn.10086140
add esp, 8
test eax, eax
je 0x10081645
cmp dword [esi + 4], ebx
jle 0x100821cb
mov ecx, dword [esi + 0xc]
movzx ecx, word [ecx + ebx*2]
mov word [eax], cx
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x38]
lea edi, [eax + ebx*2]
lea eax, [eax + ebx*2]
add eax, 2
push eax
push edi
call fcn.10048cc0
add esp, 8
sub dword [esi + 0x28], eax
dec dword [esi + 0x2c]
mov ecx, dword [esi + 0xc]
movzx eax, word [ecx + ebx*2 + 2]
test ax, ax
je 0x10081688
lea ecx, [ecx + ebx*2]
add ecx, 4
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10081677
mov word [edi], 0
mov edx, dword [esi + 0x38]
lea eax, [esp + 0x1c]
mov ecx, esi
push 1
push eax
call fcn.10085bc0
add esp, 8
test al, al
je 0x10082101
jmp 0x100821c3
cmp edx, eax
jle 0x10081766
mov dword [esi + 0x3c], eax
mov edx, eax
cmp ecx, eax
jg 0x1008176e
cmp edx, ecx
jne 0x1008177b
cmp edx, eax
cmovl eax, edx
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], eax
mov ecx, eax
test ecx, ecx
jg 0x1008177f
jmp 0x10081783
mov edi, dword [esi + 0x2c]
cmp ecx, edi
jle 0x100816ef
mov dword [esi + 0x3c], edi
cmp eax, edi
jl 0x100816f8
mov dword [esi + 0x40], edi
mov edx, edi
mov dword [esi + 0x38], edx
jmp 0x100820fd
cmp ebx, edi
mov ebp, dword [esp]
jle 0x1008178b
mov dword [esi + 0x3c], edi
mov ebx, edi
cmp edx, edi
jg 0x1008178f
cmp ebx, edx
jne 0x1008171d
mov dword [ebp], ebx
mov edx, ebx
mov ecx, dword [ebp]
cmp ecx, edi
jle 0x10081729
mov dword [ebp], edi
mov ecx, edi
cmp ebx, edx
jne 0x1008179a
mov dword [esi + 0x40], ecx
mov dword [esi + 0x3c], ecx
jmp 0x1008179f
cmp ebx, ecx
mov ebp, dword [esp]
jle 0x100817b5
mov dword [esi + 0x3c], ecx
mov ebx, ecx
cmp edi, ecx
jg 0x100817b9
cmp ebx, edi
jne 0x1008174e
mov dword [ebp], ebx
mov edi, ebx
mov edx, dword [ebp]
cmp edx, ecx
jle 0x1008175a
mov dword [ebp], ecx
mov edx, ecx
cmp ebx, edi
jne 0x100817c4
mov dword [esi + 0x40], edx
mov dword [esi + 0x3c], edx
jmp 0x100817c9
cmp ecx, eax
jle 0x100816c3
mov dword [esi + 0x40], eax
mov ecx, eax
cmp edx, ecx
je 0x100816cb
test ecx, ecx
jle 0x10081783
dec ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x38], ecx
jmp 0x100820fd
cmp edx, edi
jle 0x10081714
mov dword [esi + 0x40], edi
mov edx, edi
cmp ebx, edx
je 0x10081718
jmp 0x1008171d
mov dword [ebp], edx
mov ecx, edx
test al, al
je 0x1008198b
mov dword [ebp], 0
xor ecx, ecx
jmp 0x100819e5
cmp edi, ecx
jle 0x10081745
mov dword [esi + 0x40], ecx
mov edi, ecx
cmp ebx, edi
je 0x10081749
jmp 0x1008174e
mov dword [ebp], edi
mov edx, edi
test al, al
je 0x100819bb
mov dword [ebp], ecx
jmp 0x100819e5
mov edi, dword [esp]
jle 0x10081a86
mov dword [esi + 0x40], ecx
mov eax, ecx
jmp 0x10081a8a
cmp ecx, edi
mov ebp, dword [esp]
jle 0x100818e1
mov dword [esi + 0x3c], edi
mov ecx, edi
cmp edx, edi
jg 0x100818e9
cmp ecx, edx
jne 0x1008180d
mov dword [ebp], ecx
mov edx, ecx
mov ebx, dword [ebp]
cmp ebx, edi
jle 0x1008186f
mov dword [ebp], edi
mov ebx, edi
cmp ecx, edx
je 0x10081873
jle 0x10081824
mov dword [esi + 0x3c], edx
mov ecx, edx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x40], ecx
mov byte [esi + 0x47], 0
mov ebx, ecx
test al, al
jne 0x10081877
test ebx, ebx
jle 0x100820fd
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
lea edx, [ebx - 1]
cmp ebx, eax
jg 0x100821cb
cmp word [ecx + edx*2], 0xa
je 0x100820fd
mov dword [ebp], edx
mov edi, esi
lea esi, [edx - 1]
inc edx
cmp edx, 1
mov edx, esi
mov esi, edi
ja 0x10081845
jmp 0x100820fd
cmp ecx, edx
jne 0x1008181d
test al, al
je 0x10081834
mov dword [ebp], 0
jmp 0x100820fd
cmp edx, ecx
mov ebp, dword [esp]
jle 0x100818fb
mov dword [esi + 0x3c], ecx
mov edx, ecx
cmp edi, ecx
jg 0x100818ff
cmp edx, edi
jne 0x1008189c
mov dword [ebp], edx
mov edi, edx
mov ebx, dword [ebp]
cmp ebx, ecx
jle 0x100818a8
mov dword [ebp], ecx
mov ebx, ecx
cmp edx, edi
je 0x100818bf
jle 0x100818b3
mov dword [esi + 0x3c], edi
mov edx, edi
mov dword [esi + 0x38], edx
mov dword [esi + 0x40], edx
mov byte [esi + 0x47], 0
mov ebx, edx
mov edi, esi
test al, al
je 0x100819ed
mov dword [ebp], ecx
jmp 0x10081a24
jle 0x10081aaf
mov dword [esi + 0x40], edx
mov eax, edx
jmp 0x10081ab3
cmp edx, edi
jle 0x10081804
mov dword [esi + 0x40], edi
mov edx, edi
cmp ecx, edx
je 0x10081808
jmp 0x1008180d
cmp edi, ecx
jle 0x10081893
mov dword [esi + 0x40], ecx
mov edi, ecx
cmp edx, edi
je 0x10081897
jmp 0x1008189c
jle 0x10081911
mov dword [esi + 0x3c], edx
mov eax, edx
mov dword [esi + 0x38], eax
mov dword [esi + 0x40], eax
mov byte [esi + 0x47], 0
mov ecx, dword [esi + 0x2c]
jmp 0x10081af8
jle 0x10081ace
mov dword [esi + 0x40], eax
mov edi, eax
jmp 0x10081ad2
mov dword [esi + 0x38], edx
mov ecx, dword [esi + 0x2c]
cmp eax, ecx
jle 0x10081942
mov dword [esi + 0x3c], ecx
mov eax, ecx
mov edi, edx
cmp edx, ecx
jle 0x1008194d
mov dword [esi + 0x40], ecx
mov edi, ecx
cmp eax, edi
jne 0x10081af6
mov edx, dword [esp]
mov dword [edx], eax
jmp 0x10081af8
mov dword [esi + 0x38], edx
mov ecx, dword [esi + 0x2c]
cmp eax, ecx
jle 0x1008196e
mov dword [esi + 0x3c], ecx
mov eax, ecx
mov edi, edx
cmp edx, ecx
jle 0x10081979
mov dword [esi + 0x40], ecx
mov edi, ecx
cmp eax, edi
jne 0x10081c1f
mov edx, dword [esp]
mov dword [edx], eax
jmp 0x10081c21
test ecx, ecx
jle 0x100819e5
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
mov edx, ecx
cmp ecx, eax
jg 0x100821cb
cmp word [edi + edx*2 - 2], 0xa
je 0x100819e3
dec edx
mov dword [ebp], edx
mov ebx, esi
lea esi, [edx + 1]
cmp esi, 1
mov esi, ebx
ja 0x10081997
xor ecx, ecx
jmp 0x100819e5
cmp edx, ecx
jge 0x100819e3
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xc]
cmp edx, eax
cmovg eax, edx
cmp eax, edx
je 0x100821cb
cmp word [edi + edx*2], 0xa
je 0x100819e3
inc edx
mov dword [ebp], edx
cmp ecx, edx
jne 0x100819ca
jmp 0x100819e5
mov ecx, edx
mov dword [esi + 0x40], ecx
jmp 0x100820fd
cmp ebx, ecx
jge 0x10081a24
mov edx, edi
mov eax, dword [edi + 4]
cmp ebx, eax
cmovg eax, ebx
mov edx, dword [edi + 0xc]
neg eax
inc ebx
neg ecx
lea esi, [eax + ebx]
cmp esi, 1
je 0x100821cb
cmp word [edx + ebx*2 - 2], 0xa
je 0x10081a24
mov dword [ebp], ebx
lea esi, [ecx + ebx]
inc esi
inc ebx
cmp esi, 1
jne 0x10081a03
mov esi, edi
mov byte [edi + 0x47], 0
jmp 0x10082101
mov ecx, esi
jmp 0x10081a38
mov ecx, esi
mov ebp, dword [esp]
mov edx, ebp
push edi
push ebx
call fcn.10086080
add esp, 8
mov eax, dword [esi + 0x40]
mov dword [esi + 0x3c], eax
mov dword [ebp], eax
jmp 0x100820fd
cmp edi, eax
jle 0x10081500
mov dword [esi + 0x40], eax
mov edi, eax
cmp edx, edi
je 0x10081504
jmp 0x10081509
cmp edx, eax
jle 0x10081570
mov dword [esi + 0x40], eax
mov edx, eax
cmp ecx, edx
je 0x10081574
jmp 0x1008157b
mov eax, edx
mov edx, ecx
mov ecx, dword [esi + 0x2c]
cmp edx, eax
je 0x10081a9a
cmp eax, ecx
jle 0x10081a9a
mov dword [esi + 0x40], ecx
mov eax, ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
cmp eax, ecx
jle 0x100820fd
mov dword [edi], ecx
jmp 0x100820fd
mov eax, ecx
mov ecx, edx
cmp ecx, eax
je 0x10081ac3
mov ecx, dword [esi + 0x2c]
cmp eax, ecx
jle 0x10081ac3
mov dword [esi + 0x40], ecx
mov eax, ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
jmp 0x100820fd
mov edi, edx
mov edx, eax
cmp edx, edi
je 0x10081ae2
mov eax, dword [esi + 0x2c]
cmp edi, eax
jle 0x10081ae2
mov dword [esi + 0x40], eax
mov edi, eax
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
mov byte [esi + 0x47], 0
mov ecx, dword [esi + 0x2c]
mov eax, edi
jmp 0x10081c21
mov eax, edx
cmp eax, ecx
jle 0x10081b03
mov eax, dword [esp]
mov dword [eax], ecx
mov eax, ecx
lea ebx, [esp + 0x1c]
mov ecx, ebx
mov edx, esi
push 0
push eax
call fcn.10085d40
add esp, 8
mov edx, dword [esp + 0x30]
cmp edx, dword [esp + 0x28]
je 0x10082101
lea ecx, [esi + 0x4c]
cmp byte [esi + 0x47], 0
cmove ecx, ebx
movss xmm0, dword [ecx]
mov dword [esi + 0x38], edx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
lea ebx, [ecx + eax*2]
mov eax, edx
mov dword [esp + 0xc], ecx
lea edx, [ecx + edx*2]
mov ecx, edx
nop dword [eax]
cmp ecx, ebx
jae 0x10081b61
lea edi, [ecx + 2]
cmp word [ecx], 0xa
mov ecx, edi
jne 0x10081b50
jmp 0x10081b63
mov edi, ecx
sub edi, edx
test edi, edi
jle 0x10081d4f
shr edi, 1
cmp edi, 2
mov ecx, 1
cmovge ecx, edi
mov edx, dword [esi + 4]
mov edi, dword [0x10259f60]
mov dword [esp + 0x18], edi
mov edi, eax
cmp eax, edx
cmovg edx, eax
mov dword [esp + 8], edx
xorps xmm1, xmm1
movss xmm2, dword [0x101a87b0]
mov ebx, dword [esp + 0x18]
cmp dword [esp + 8], edi
je 0x100821cb
mov eax, dword [esp + 0xc]
movzx edx, word [eax + edi*2]
cmp edx, 0xa
je 0x10081d59
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edi
mov eax, esi
mov esi, dword [ebx + 0x18fc]
lea ecx, [edx*4]
add ecx, dword [esi + 8]
lea edi, [esi + 0xc]
cmp dword [esi], edx
cmovg edi, ecx
movss xmm3, dword [ebx + 0x1900]
divss xmm3, dword [esi + 0x10]
mulss xmm3, dword [edi]
ucomiss xmm3, xmm2
jne 0x10081bfa
jnp 0x10081d53
addss xmm1, xmm3
ucomiss xmm1, xmm0
mov esi, eax
mov edi, dword [esp + 4]
ja 0x10081d59
inc edi
mov eax, dword [esp]
mov dword [eax], edi
mov ecx, dword [esp + 0x14]
dec ecx
jne 0x10081ba1
jmp 0x10081d59
mov eax, edx
cmp eax, ecx
jle 0x10081c2c
mov eax, dword [esp]
mov dword [eax], ecx
mov eax, ecx
lea ebx, [esp + 0x1c]
mov ecx, ebx
mov edx, esi
push 0
push eax
call fcn.10085d40
add esp, 8
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x10082101
cmp byte [esi + 0x47], 0
lea ecx, [esi + 0x4c]
cmove ecx, ebx
movss xmm0, dword [ecx]
add edx, dword [esp + 0x28]
mov dword [esi + 0x38], edx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
lea ebx, [ecx + eax*2]
mov eax, edx
mov dword [esp + 0xc], ecx
lea edx, [ecx + edx*2]
mov ecx, edx
nop dword [eax + eax]
cmp ecx, ebx
jae 0x10081c91
lea edi, [ecx + 2]
cmp word [ecx], 0xa
mov ecx, edi
jne 0x10081c80
jmp 0x10081c93
mov edi, ecx
sub edi, edx
test edi, edi
jle 0x10081d4f
shr edi, 1
cmp edi, 2
mov ecx, 1
cmovge ecx, edi
mov edx, dword [esi + 4]
mov edi, dword [0x10259f60]
mov dword [esp + 0x18], edi
mov edi, eax
cmp edx, eax
cmovle edx, eax
mov dword [esp + 8], edx
xorps xmm1, xmm1
movss xmm2, dword [0x101a87b0]
mov ebx, dword [esp + 0x18]
nop word cs:[eax + eax]
cmp dword [esp + 8], edi
je 0x100821cb
mov eax, dword [esp + 0xc]
movzx edx, word [eax + edi*2]
cmp edx, 0xa
je 0x10081d59
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edi
mov eax, esi
mov ecx, dword [ebx + 0x18fc]
lea esi, [edx*4]
add esi, dword [ecx + 8]
lea edi, [ecx + 0xc]
cmp dword [ecx], edx
cmovg edi, esi
movss xmm3, dword [ebx + 0x1900]
divss xmm3, dword [ecx + 0x10]
mulss xmm3, dword [edi]
ucomiss xmm3, xmm2
jne 0x10081d31
jnp 0x10081d53
addss xmm1, xmm3
ucomiss xmm1, xmm0
mov esi, eax
mov edi, dword [esp + 4]
ja 0x10081d59
inc edi
mov eax, dword [esp]
mov dword [eax], edi
mov ecx, dword [esp + 0x14]
dec ecx
jne 0x10081ce0
jmp 0x10081d59
mov edi, eax
jmp 0x10081d59
mov esi, eax
mov edi, dword [esp + 4]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
cmp ecx, edx
je 0x10081d7f
mov eax, dword [esp + 0x10]
cmp ecx, eax
jle 0x10081da7
mov dword [esi + 0x3c], eax
mov ecx, eax
cmp edx, eax
jg 0x10081dab
cmp ecx, edx
jne 0x10081d7f
mov eax, dword [esp]
mov dword [eax], ecx
mov edi, ecx
mov ecx, dword [esp + 0x10]
cmp edi, ecx
jle 0x10081d8e
mov eax, dword [esp]
mov dword [eax], ecx
mov edi, ecx
mov byte [esi + 0x47], 1
movss dword [esi + 0x4c], xmm0
test ebp, ebp
je 0x10082101
mov dword [esi + 0x40], edi
jmp 0x10082101
cmp edx, eax
jle 0x10081d74
mov edx, dword [esp + 0x10]
mov dword [esi + 0x40], edx
cmp ecx, edx
je 0x10081d78
jmp 0x10081d7f
mov eax, dword [esi + 0xe58]
cmp ecx, eax
jle 0x10082002
lea ecx, [esi + 0x680]
mov dword [esp + 4], ecx
movzx ecx, word [esi + 0xe50]
lea edi, [esi + 0x6c]
mov dword [esp + 0x18], edi
mov dword [esp + 8], ebp
jmp 0x10081e44
movsx eax, cx
test cx, cx
js 0x100821cb
shl eax, 4
mov ecx, 0x620
sub ecx, eax
lea edx, [ebx + eax]
lea edi, [ecx + edx]
add edi, 0x10
cmp edi, dword [esp + 4]
ja 0x100821cb
add eax, ebx
add eax, 0x10
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ecx, dword [esi + 0xe50]
mov edx, dword [esi + 0xe54]
inc ecx
mov word [esi + 0xe50], cx
mov eax, dword [esi + 0xe58]
mov edi, dword [esp]
add edi, edx
cmp edi, eax
jle 0x10082009
cmp cx, 0x63
je 0x100820fd
jge 0x10081e37
cmp dword [esi + 0x67c], 0
js 0x10081de4
mov edi, dword [esi + 0x674]
lea ecx, [edi + eax]
mov dword [esi + 0xe58], ecx
mov ebp, dword [esp + 4]
lea edx, [ecx*2]
add edx, ebp
lea eax, [eax*2]
add eax, ebp
add ecx, ecx
mov ebp, 0x7ce
sub ebp, ecx
push ebp
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
movsx eax, word [esi + 0xe50]
cmp eax, 0x61
jg 0x10081ece
mov ecx, eax
test al, 1
mov ebp, dword [esp + 8]
je 0x10081ec1
mov edx, eax
shl edx, 4
mov ecx, dword [ebx + edx + 0xc]
test ecx, ecx
js 0x10081ebe
add edx, ebx
add edx, 0xc
add ecx, edi
mov dword [edx], ecx
lea ecx, [eax + 1]
cmp ax, 0x61
jne 0x10081ed7
mov ecx, eax
jmp 0x10081de7
mov ebp, dword [esp + 8]
jmp 0x10081df0
lea edx, [ecx - 0x62]
shl ecx, 4
add ecx, dword [esp + 0x18]
jmp 0x10081eeb
add ecx, 0x20
add edx, 2
je 0x10081f03
mov ebp, dword [ecx - 0x10]
test ebp, ebp
js 0x10081ef7
add ebp, edi
mov dword [ecx - 0x10], ebp
mov ebp, dword [ecx]
test ebp, ebp
js 0x10081ee3
add ebp, edi
mov dword [ecx], ebp
jmp 0x10081ee3
mov ecx, eax
mov ebp, dword [esp + 8]
jmp 0x10081de7
lea edx, [esi + ecx]
add edx, 0x5c
mov dword [edx], edi
mov dword [esi + 0xe54], ebx
cmp dword [eax], 0
jle 0x10081f4e
add ecx, esi
add ecx, 0x50
xor edi, edi
mov ebx, dword [ecx]
add ebx, edi
cmp dword [esi + 4], ebx
jle 0x100821cb
mov ebp, dword [esi + 0xc]
movzx ebx, word [ebp + ebx*2]
mov ebp, dword [edx]
add ebp, edi
mov word [esi + ebp*2 + 0x680], bx
inc edi
cmp edi, dword [eax]
jl 0x10081f28
mov ebx, dword [esp]
lea eax, [ebx + ebx]
mov edi, dword [esi + 0xc]
mov dword [esp + 8], eax
add edi, eax
mov ebp, dword [esp + 0xc]
lea eax, [edi + ebp*2]
push eax
push edi
call fcn.10048cc0
add esp, 8
sub dword [esi + 0x28], eax
sub dword [esi + 0x2c], ebp
mov ecx, dword [esi + 0xc]
lea eax, [ecx + ebx*2]
movzx eax, word [eax + ebp*2]
test ax, ax
je 0x10081fa1
mov edx, dword [esp + 8]
lea edx, [edx + ebp*2]
add ecx, edx
add ecx, 2
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10081f90
mov word [edi], 0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x14]
test edi, edi
je 0x10081fce
lea eax, [esi + eax*2]
add eax, 0x680
mov ecx, esi
mov edx, ebx
push edi
push eax
call fcn.10085bc0
add esp, 8
add dword [esi + 0xe58], edi
add edi, ebx
mov dword [esi + 0x38], edi
movd xmm0, dword [esi + 0xe4e]
pcmpeqd xmm1, xmm1
psubw xmm0, xmm1
movd dword [esi + 0xe4e], xmm0
jmp 0x100820fd
mov ecx, dword [esi + 0x2c]
cmp eax, ebx
jne 0x1008212c
mov eax, ebx
jmp 0x10082151
movzx ecx, word [esi + 0xe50]
movsx ecx, cx
shl ecx, 4
mov edx, dword [esp]
sub eax, edx
mov dword [ecx + ebx - 4], eax
mov dword [esi + 0xe58], eax
test edx, edx
jle 0x10082055
lea eax, [ecx + ebx]
add eax, 0xfffffffc
mov ecx, ebp
add ecx, ebp
xor edx, edx
lea edi, [edx + ebp]
cmp dword [esi + 4], edi
jle 0x100821cb
mov edi, dword [esi + 0xc]
add edi, ecx
movzx edi, word [edi + edx*2]
mov ebx, dword [eax]
add ebx, edx
mov word [esi + ebx*2 + 0x680], di
inc edx
cmp dword [esp], edx
jne 0x1008202e
mov eax, ebp
add eax, ebp
mov edi, dword [esi + 0xc]
mov dword [esp + 4], eax
add edi, eax
mov ebx, dword [esp]
lea eax, [edi + ebx*2]
push eax
push edi
call fcn.10048cc0
add esp, 8
sub dword [esi + 0x28], eax
sub dword [esi + 0x2c], ebx
mov ecx, dword [esi + 0xc]
lea eax, [ecx + ebp*2]
movzx eax, word [eax + ebx*2]
test ax, ax
je 0x100820b3
mov edx, dword [esp + 4]
lea edx, [edx + ebx*2]
add ecx, edx
add ecx, 2
mov edx, dword [esp + 0xc]
nop word [eax + eax]
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100820a0
jmp 0x100820b7
mov edx, dword [esp + 0xc]
mov word [edi], 0
mov edi, dword [esp + 0x14]
test edi, edi
je 0x100820e0
lea eax, [esi + edx*2]
add eax, 0x680
mov ecx, esi
mov edx, ebp
push edi
push eax
call fcn.10085bc0
add esp, 8
sub dword [esi + 0xe54], edi
add edi, ebp
mov dword [esi + 0x38], edi
movd xmm0, dword [esi + 0xe4e]
pcmpeqd xmm1, xmm1
paddw xmm1, xmm0
movd dword [esi + 0xe4e], xmm1
mov byte [esi + 0x47], 0
mov byte [esi + 0xe60], 1
mov dword [esi + 0xe5c], 0xbe99999a
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.10155bf1
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov ecx, dword [esi + 0x2c]
jmp 0x1008214f
cmp eax, ecx
jle 0x1008213f
mov dword [esi + 0x3c], ecx
mov eax, ecx
cmp ebx, ecx
jg 0x10082143
cmp eax, ebx
je 0x1008214c
jmp 0x10082151
cmp ebx, ecx
jle 0x10082139
mov dword [esi + 0x40], ecx
mov ebx, ecx
cmp eax, ebx
jne 0x10082151
mov dword [ebp], eax
mov ebx, eax
mov edx, dword [ebp]
cmp edx, ecx
jle 0x1008215d
mov dword [ebp], ecx
mov edx, ecx
mov edi, eax
sub edi, ebx
je 0x10082198
jge 0x1008217d
sub ebx, eax
mov ecx, esi
mov edx, ebp
push ebx
push eax
call fcn.10086080
add esp, 8
mov edx, dword [esi + 0x3c]
mov dword [esi + 0x40], edx
jmp 0x10082191
mov ecx, esi
mov edx, ebp
push edi
push ebx
call fcn.10086080
add esp, 8
mov edx, dword [esi + 0x40]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], edx
mov byte [esi + 0x47], 0
lea eax, [esp + 0x1c]
mov ecx, esi
push 1
push eax
call fcn.10085bc0
add esp, 8
test al, al
je 0x10082101
mov edx, dword [esi + 0x38]
lea ecx, [esi + 0x50]
push 1
push 0
call fcn.10086140
add esp, 8
inc dword [esi + 0x38]
jmp 0x100820fd
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3