Function at 0x10023e10
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
mov dword [ebp - 0x6c], edi
lea eax, [edi - 0x416]
cmp eax, 9
ja 0x10023e42
mov ecx, 0x3b
call fcn.10008c90
mov eax, dword [0x1005e760]
lea esi, [ebp - 0x58]
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x70], ecx
cmp eax, 0x3b
je 0x10023ef0
nop dword [eax + eax]
cmp eax, 0xa
je 0x10023ef0
cmp ecx, 3
jge 0x10024df4
mov edx, esi
mov ecx, ebx
call fcn.100233b0
mov eax, dword [0x1005e760]
cmp eax, 0x3a
jne 0x10023ec8
cmp dword [esi], 0x200
jne 0x10024dea
cmp dword [ebp - 0x70], 0
jne 0x10024dea
movsx eax, byte [esi + 4]
movzx eax, byte [eax + str..6_de]
mov dword [ebp - 0x70], eax
call fcn.10008900
mov edx, esi
mov ecx, ebx
call fcn.100233b0
test dword [esi], 0x40000000
je 0x10024de0
mov eax, dword [0x1005e760]
inc dword [ebp - 0x64]
add esi, 0x18
cmp eax, 0x2c
jne 0x10023ef0
call fcn.10008900
mov eax, dword [0x1005e760]
cmp eax, 0x3b
je 0x10023ef0
mov ecx, dword [ebp - 0x64]
jmp 0x10023e60
mov ecx, 0x10058950
mov dword [ebp - 0x74], ecx
movzx edx, word [ecx + 4]
xor ebx, ebx
mov eax, edx
mov dword [ebp - 0x68], edx
and eax, 0x70
movzx esi, dx
mov dword [ebp - 0x5c], ebx
cmp eax, 0x40
jne 0x10023f41
movzx eax, word [ecx]
mov esi, edi
sub esi, eax
cmp esi, 0x30
jae 0x10024139
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
add eax, eax
sub esi, eax
je 0x10024069
jmp 0x10024139
cmp eax, 0x30
jne 0x10023f9e
movzx edx, word [ecx]
cmp edi, edx
jl 0x10024139
lea eax, [edx + 0x28]
cmp edi, eax
jge 0x10024139
mov esi, edi
mov ebx, 5
sub esi, edx
mov eax, esi
cdq
idiv ebx
mov eax, dword [ebp - 0x68]
and eax, 0x1001
mov ebx, edx
mov dword [ebp - 0x5c], ebx
cmp eax, 0x1000
jne 0x10024069
lea eax, [esi + 1]
mov esi, 5
cdq
idiv esi
test edx, edx
je 0x10024139
inc ebx
mov dword [ebp - 0x5c], ebx
jmp 0x10024069
cmp eax, 0x20
jne 0x10023fcf
movzx edx, word [ecx]
cmp edi, edx
jl 0x10024139
lea eax, [edx + 0x23]
cmp edi, eax
jge 0x10024139
mov eax, edi
mov ebx, 5
sub eax, edx
cdq
idiv ebx
mov ebx, edx
mov dword [ebp - 0x5c], ebx
jmp 0x10024069
cmp eax, 0x50
jne 0x10023ff7
movzx eax, word [ecx]
cmp edi, eax
jl 0x10024139
add eax, 0x1e
cmp edi, eax
jge 0x10024139
mov ebx, edx
shr ebx, 0xa
and ebx, 4
mov dword [ebp - 0x5c], ebx
jmp 0x10024069
and esi, 0x1000
test dl, 1
je 0x1002403c
test si, si
jne 0x1002401d
movzx eax, word [ecx]
cmp edi, eax
jl 0x10024139
add eax, 4
cmp edi, eax
jge 0x10024139
movzx edx, word [ecx]
cmp edi, edx
jl 0x10024139
lea eax, [edx + 5]
cmp edi, eax
jge 0x10024139
mov ebx, edi
sub ebx, edx
mov dword [ebp - 0x5c], ebx
jmp 0x10024069
movzx edx, word [ecx]
test si, si
je 0x10024061
cmp edi, edx
jl 0x10024139
lea eax, [edx + 4]
cmp edi, eax
jge 0x10024139
mov ebx, edi
sub ebx, edx
inc ebx
mov dword [ebp - 0x5c], ebx
jmp 0x10024069
cmp edx, edi
jne 0x10024139
movzx eax, byte [ecx + 6]
mov edx, dword [ebp - 0x64]
cmp eax, edx
jne 0x10024139
mov eax, 0xb0
cmp word [ecx + 2], ax
jne 0x100240a4
cmp dword [ebp - 0x58], 0x10000
je 0x100240a4
mov eax, dword [ebp - 0x40]
and al, 0xf
cmp al, 8
jne 0x100240a4
mov eax, 0x100
test word [ecx + 4], ax
je 0x10024139
xor eax, eax
xor esi, esi
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x58]
mov dword [ebp - 0x60], eax
cmp esi, edx
jge 0x1002414b
movzx eax, byte [ecx + esi + 7]
mov ecx, eax
mov dword [ebp - 0x68], eax
and ecx, 0x1f
lea eax, [ecx - 0x18]
cmp eax, 6
ja case.default.0x100240ce
jmp dword [eax*4 + 0x10024e2c]
mov edx, 0xd000
jmp 0x10024106
mov edx, 0xf
jmp 0x10024106
mov edx, 0xe
jmp 0x10024106
mov edx, 0xc000
jmp 0x10024106
mov edx, 0x30
jmp 0x10024106
mov edx, 0x200000
jmp 0x10024106
mov edx, 1
shl edx, cl
mov eax, edx
or eax, 0x40000000
test byte [ebp - 0x68], 0x80
cmove eax, edx
mov edx, dword [ebp - 0x60]
mov dword [ebp + esi*4 - 0x10], eax
mov ecx, dword [edx]
test ecx, eax
je 0x10024136
or dword [ebp - 0x78], ecx
inc esi
mov ecx, dword [ebp - 0x74]
add edx, 0x18
mov dword [ebp - 0x60], edx
mov edx, dword [ebp - 0x64]
jmp 0x100240b1
mov ecx, dword [ebp - 0x74]
add ecx, 0xa
mov dword [ebp - 0x74], ecx
cmp word [ecx], 0
jne 0x10023ef8
jmp 0x10024151
cmp word [ecx], 0
jne 0x100241c8
cmp edi, 0x3f4
jl 0x10024165
cmp edi, 0x450
jle 0x10024d10
cmp edi, 0x4ea
jle 0x10024dcc
mov eax, dword [0x1005e75c]
mov esi, dword [eax + edi*4 - 0x400]
mov eax, dword [esi + 0x18]
cmp eax, 6
jl 0x10024e1c
movsx eax, byte [eax + esi + 0x1b]
push eax
push 0x10057864
call fcn.100308f0
add esp, 8
test eax, eax
je 0x10024e1c
cmp dword [esi + 0x1c], 0x766f6d63
lea ecx, [esi + 0x1c]
jne 0x10024e1c
mov edx, dword [esi + 0x18]
dec edx
call fcn.100018d0
mov edi, dword [eax + 0x14]
mov dword [ebp - 0x6c], edi
jmp 0x10023ef0
mov ax, word [ecx + 4]
mov ecx, 0x1001
and ax, cx
xor ecx, ecx
cmp ax, 1
setne cl
add ecx, 3
mov dword [ebp - 0x68], ecx
cmp ebx, ecx
jne 0x1002424c
mov esi, dword [ebp - 0x68]
lea ecx, [edx - 1]
lea eax, [ecx + ecx*2]
lea edx, [ebp - 0x58]
lea edx, [edx + eax*8]
test ecx, ecx
js 0x1002421f
mov eax, dword [edx]
and eax, 0xf
je 0x10024215
test dword [ebp + ecx*4 - 0x10], 0x180000
jne 0x10024215
movzx ebx, byte [eax + 0x100598d0]
mov dword [ebp - 0x5c], ebx
dec ecx
sub edx, 0x18
cmp ebx, esi
je 0x100241f6
jmp 0x10024249
cmp edi, 0x2c2
je 0x10024233
cmp edi, 0x2c6
jne 0x10024316
mov eax, dword [ebp - 0x58]
test eax, 0xa200
je 0x1002430c
mov ebx, 2
mov dword [ebp - 0x5c], ebx
mov edx, dword [ebp - 0x64]
xor ecx, ecx
test edx, edx
jle 0x10024266
lea eax, [ebp - 0x58]
cmp dword [eax], 0
jl 0x1002433a
inc ecx
add eax, 0x18
cmp ecx, edx
jl 0x10024255
mov esi, dword [0x1006e81c]
mov dword [ebp - 0x60], esi
xor edx, edx
cmp ebx, 1
je 0x100242ba
xor ecx, ecx
cmp dword [ebp - 0x64], ecx
jle 0x1002438d
mov edi, dword [ebp - 0x64]
lea esi, [ebp - 0x58]
lea ebx, [edx + 1]
nop word [eax + eax]
mov eax, dword [ebp + ecx*4 - 0x10]
and eax, 0x30
cmp al, 0x30
jne 0x100242a1
test byte [esi], 0x20
cmovne edx, ebx
inc ecx
add esi, 0x18
cmp ecx, edi
jl 0x10024290
mov edi, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x60]
test edx, edx
je 0x1002438d
cmp dword [0x10071698], 0
mov edx, dword [0x1006e7ec]
jne 0x10024393
mov ecx, dword [edx + 0x36c]
lea eax, [esi + 1]
mov dword [ebp - 0x68], eax
cmp eax, dword [ecx + 8]
jbe 0x100242f1
mov edx, eax
call fcn.1001c470
mov esi, dword [0x1006e81c]
mov edx, dword [0x1006e7ec]
mov eax, dword [edx + 0x36c]
mov ecx, dword [ebp - 0x68]
mov dword [0x1006e81c], ecx
mov eax, dword [eax + 4]
mov byte [esi + eax], 0x66
jmp 0x10024396
cmp edi, 0x2c2
je 0x10024325
jmp 0x10024319
mov eax, dword [ebp - 0x58]
cmp edi, 0x2c6
jne 0x10024dfe
test eax, 0x40000000
je 0x10024dfe
mov ebx, 3
jmp 0x10024246
cmp dword [0x10071698], 0
jne 0x10024266
mov eax, dword [0x1006e7ec]
mov edx, dword [0x1006e81c]
mov ecx, dword [eax + 0x36c]
lea esi, [edx + 1]
mov dword [ebp - 0x60], esi
cmp esi, dword [ecx + 8]
jbe 0x10024375
mov edx, esi
call fcn.1001c470
mov edx, dword [0x1006e81c]
mov eax, dword [0x1006e7ec]
mov eax, dword [eax + 0x36c]
mov dword [0x1006e81c], esi
mov eax, dword [eax + 4]
mov byte [edx + eax], 0x67
jmp 0x1002426f
mov edx, dword [0x1006e7ec]
mov ecx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x74]
mov eax, 0x200
mov dword [ebp - 0x60], 0
test word [esi + 4], ax
je 0x100243b7
mov dword [ebp - 0x60], 1
jmp 0x1002445c
cmp ebx, 3
je 0x100243c7
mov eax, dword [ebp - 0x78]
test al, 8
je 0x1002445c
xor eax, eax
cmp dword [ebp - 0x64], eax
jle 0x100243f3
mov edx, dword [0x1006e7ec]
cmp dword [ebp + eax*4 - 0x10], 8
jne 0x100243ed
mov edi, 0xb8
cmp word [esi + 2], di
mov edi, dword [ebp - 0x6c]
jne 0x10024565
inc eax
cmp eax, dword [ebp - 0x64]
jl 0x100243d4
xor eax, eax
cmp edi, 0x2c2
je 0x1002445c
cmp edi, 0x2c6
je 0x1002445c
cmp edi, 0x2bf
je 0x1002445c
cmp edi, 0x2c0
je 0x1002445c
cmp edi, 0x2c1
je 0x1002445c
cmp edi, 0x2c3
je 0x1002445c
cmp edi, 0x2c4
je 0x1002445c
cmp edi, 0x2c5
je 0x1002445c
cmp edi, 0x2e4
je 0x1002445c
cmp edi, 0x2e5
je 0x1002445c
xor edx, edx
test eax, eax
mov eax, edx
mov edx, 1
cmove eax, edx
mov edx, dword [0x1006e7ec]
mov dword [ebp - 0x60], eax
mov al, byte [esi + 4]
and al, 0x70
cmp al, 0x10
jne 0x100244b1
cmp dword [0x10071698], 0
jne 0x100244b1
mov esi, dword [edx + 0x36c]
lea eax, [ecx + 1]
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x6c], eax
cmp eax, dword [esi + 8]
mov esi, dword [ebp - 0x74]
jbe 0x1002449b
mov ecx, dword [ebp - 0x68]
mov edx, eax
call fcn.1001c470
mov ecx, dword [0x1006e81c]
mov edx, dword [0x1006e7ec]
mov eax, dword [edx + 0x36c]
mov eax, dword [eax + 4]
mov byte [ecx + eax], 0x9b
mov ecx, dword [ebp - 0x6c]
mov dword [0x1006e81c], ecx
cmp dword [ebp - 0x70], 0
je 0x10024504
cmp dword [0x10071698], 0
jne 0x10024504
mov esi, dword [edx + 0x36c]
lea eax, [ecx + 1]
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x6c], eax
cmp eax, dword [esi + 8]
mov esi, dword [ebp - 0x74]
jbe 0x100244ed
mov ecx, dword [ebp - 0x68]
mov edx, eax
call fcn.1001c470
mov ecx, dword [0x1006e81c]
mov edx, dword [0x1006e7ec]
mov eax, dword [edx + 0x36c]
mov edx, dword [ebp - 0x70]
mov eax, dword [eax + 4]
mov byte [ecx + eax], dl
mov eax, dword [ebp - 0x6c]
mov dword [0x1006e81c], eax
movzx eax, word [esi + 4]
movzx edx, word [esi + 2]
mov ecx, eax
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x68], ecx
test eax, 0x100
je 0x10024533
mov ecx, edx
movzx edx, dl
and ecx, 0xffffff0f
or ecx, 0xf
shl ecx, 8
or edx, ecx
mov ecx, eax
mov dword [ebp - 0x5c], edx
cmp edx, 0x69
je 0x1002453d
cmp edx, 0x6b
jne 0x1002456f
cmp dword [ebp - 0x64], 2
jne 0x1002456f
movups xmm0, xmmword [ebp - 0x40]
mov eax, dword [ebp - 0xc]
mov ecx, 3
mov dword [ebp - 0x64], ecx
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 8], eax
movq xmm0, qword [ebp - 0x30]
movq qword [ebp - 0x18], xmm0
jmp 0x100245c5
mov eax, 1
jmp 0x100243f5
cmp edx, 0xcd
jne 0x10024594
cmp dword [ebp - 0x50], 3
jne 0x100245f2
cmp dword [ebp - 0x4c], 0
jne 0x100245f2
cmp dword [ebp - 0x48], 0
jne 0x100245f2
dec edx
xor ecx, ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x64], ecx
jmp 0x100245c5
cmp edx, 6
je 0x1002460a
cmp edx, 7
je 0x1002460a
cmp edx, 5
ja 0x100245f2
lea ecx, [edi - 0x23a]
mov eax, 0x66666667
imul ecx
sar edx, 1
mov ecx, dword [ebp - 0x5c]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x64]
or eax, 0xffffffff
or edx, eax
mov dword [ebp - 0x70], eax
test byte [esi + 4], 8
mov dword [ebp - 0x78], edx
je 0x10024683
xor eax, eax
mov dword [ebp - 0x70], eax
test ecx, ecx
jne 0x10024627
mov dword [ebp - 0x58], 0xf
mov byte [ebp - 0x54], cl
jmp 0x10024683
and cl, 0x78
cmp cl, 0x40
jne 0x100245c2
movzx eax, word [esi]
mov ecx, edi
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
jmp 0x100245b2
mov al, byte [ebp - 0x54]
cmp al, 4
movsx eax, al
lea edx, [edx + eax*8]
jl 0x1002461d
add edx, 0xf7a
xor ecx, ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x64], ecx
jmp 0x100245c5
jle 0x1002467e
nop dword [eax]
test dword [ebp + eax*4 - 0x10], 0x40000000
jne 0x1002465f
inc eax
mov dword [ebp - 0x70], eax
cmp eax, ecx
jl 0x10024630
xor eax, eax
test dword [ebp + eax*4 - 0x10], 0x40003f
jne 0x10024653
inc eax
cmp eax, ecx
jl 0x10024644
xor ecx, ecx
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x64], ecx
jle 0x10024683
jmp 0x10024661
xor ecx, ecx
cmp ecx, eax
je 0x1002466f
test dword [ebp + ecx*4 - 0x10], 0x3ff
jne 0x10024677
inc ecx
cmp ecx, dword [ebp - 0x64]
jl 0x10024661
jmp 0x10024683
mov edx, ecx
mov dword [ebp - 0x78], edx
jmp 0x10024683
xor eax, eax
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x60]
push eax
push edx
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x64]
lea edx, [ebp - 0x58]
call fcn.10023c90
mov ecx, dword [ebp - 0x5c]
add esp, 0x10
test byte [esi + 4], 4
je 0x100246e2
cmp ecx, 0xb0
jne 0x100246b9
cmp ebx, 1
mov eax, 0xb7
cmovge ecx, eax
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x64]
xor eax, eax
test edx, edx
jle 0x100246e5
test dword [ebp + eax*4 - 0x10], 0x40f
jne 0x100246d3
inc eax
cmp eax, edx
jl 0x100246c2
jmp 0x100246e5
lea eax, [eax + eax*2]
movsx eax, byte [ebp + eax*8 - 0x54]
add ecx, eax
mov dword [ebp - 0x5c], ecx
jmp 0x100246e5
mov edx, dword [ebp - 0x64]
test byte [esi + 4], 1
je 0x100246f8
xor eax, eax
cmp ebx, 1
setge al
add ecx, eax
mov dword [ebp - 0x5c], ecx
mov eax, dword [0x1006e81c]
mov dword [ebp - 0x60], eax
cmp edx, 1
jne 0x1002479d
cmp byte [esi + 7], 0x1e
jne 0x1002479d
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x10024828
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x10024828
mov edx, dword [0x1006e7ec]
lea ecx, [ecx + ecx*2]
mov eax, dword [edx + 0x378]
mov eax, dword [eax + 4]
lea eax, [eax + ecx*8]
mov dword [ebp - 0x68], eax
test eax, eax
je 0x10024828
movzx ecx, word [eax + 6]
mov eax, dword [edx + 0x36c]
cmp ecx, dword [eax + 0x14]
jne 0x10024828
mov ecx, dword [ebp - 0x68]
xor eax, eax
cmp dword [ebp - 0x5c], 0xff
setge al
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, dword [ebp - 0x50]
sub ecx, dword [ebp - 0x60]
add eax, 0xfffffffe
add ecx, eax
movsx eax, cl
cmp ecx, eax
jne 0x10024828
mov eax, ecx
mov dword [ebp - 0x48], 0
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x10], 0x2000
mov edx, dword [ebp - 0x5c]
mov al, byte [esi + 4]
and al, 0x70
cmp al, 0x50
jne 0x100247bc
movzx eax, word [esi]
mov ecx, edi
sub ecx, eax
movzx eax, byte [ecx + 0x100596c8]
add edx, eax
mov dword [ebp - 0x5c], edx
mov eax, edx
sar eax, 0x10
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1002485a
cmp dword [0x10071698], 0
mov ecx, dword [0x1006e7ec]
jne 0x10024855
mov edx, dword [ecx + 0x36c]
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x7c], eax
cmp eax, dword [edx + 8]
jbe 0x10024808
mov ecx, dword [ecx + 0x36c]
mov edx, eax
call fcn.1001c470
mov eax, dword [0x1006e81c]
mov ecx, dword [0x1006e7ec]
mov dword [ebp - 0x60], eax
mov eax, dword [ecx + 0x36c]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov byte [edx + eax], cl
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x60], edx
mov dword [0x1006e81c], edx
jmp 0x1002485d
mov eax, dword [ebp - 0x5c]
cmp eax, 0xeb
jne 0x1002483f
mov edx, 0xe9
mov dword [ebp - 0x5c], edx
jmp 0x100247a0
cmp eax, 0x70
jne 0x10024e08
mov edx, 0xf80
mov dword [ebp - 0x5c], edx
jmp 0x100247a0
mov edx, dword [ebp - 0x60]
jmp 0x10024863
mov edx, dword [ebp - 0x60]
mov ecx, dword [0x1006e7ec]
mov eax, dword [ebp - 0x5c]
sar eax, 8
movzx eax, al
mov dword [ebp - 0x68], eax
test eax, eax
je 0x100248ce
cmp dword [0x10071698], 0
jne 0x1002491e
mov esi, dword [ecx + 0x36c]
lea eax, [edx + 1]
mov dword [ebp - 0x6c], eax
cmp eax, dword [esi + 8]
mov esi, dword [ebp - 0x74]
jbe 0x100248ad
mov ecx, dword [ecx + 0x36c]
mov edx, eax
call fcn.1001c470
mov edx, dword [0x1006e81c]
mov ecx, dword [0x1006e7ec]
mov eax, dword [ecx + 0x36c]
mov ecx, dword [ebp - 0x68]
mov eax, dword [eax + 4]
mov byte [edx + eax], cl
mov edx, dword [ebp - 0x6c]
mov ecx, dword [0x1006e7ec]
mov dword [ebp - 0x60], edx
mov dword [0x1006e81c], edx
cmp dword [0x10071698], 0
jne 0x1002491e
mov esi, dword [ecx + 0x36c]
lea eax, [edx + 1]
mov dword [ebp - 0x68], eax
cmp eax, dword [esi + 8]
mov esi, dword [ebp - 0x74]
jbe 0x10024904
mov ecx, dword [ecx + 0x36c]
mov edx, eax
call fcn.1001c470
mov edx, dword [0x1006e81c]
mov ecx, dword [0x1006e7ec]
mov eax, dword [ecx + 0x36c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [eax + 4]
mov byte [edx + eax], cl
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x60], eax
mov dword [0x1006e81c], eax
movzx ecx, word [esi + 4]
mov eax, ecx
and ecx, 0x70
mov dword [ebp - 0x6c], eax
cmp ecx, 0x20
jne 0x10024950
movzx ecx, word [esi]
mov eax, 0x66666667
sub edi, ecx
imul edi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 6
jne 0x1002498f
mov ecx, 7
jmp 0x1002498f
cmp ecx, 0x30
jne 0x1002496c
movzx eax, word [esi]
sub edi, eax
mov eax, 0x66666667
imul edi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x1002498f
cmp ecx, 0x40
jne 0x10024986
movzx ecx, word [esi]
mov eax, 0x2aaaaaab
sub edi, ecx
imul edi
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x1002498f
mov ecx, dword [ebp - 0x6c]
movzx ecx, cx
shr ecx, 0xd
test byte [ebp - 0x6c], 8
mov dword [ebp - 0x68], 0
je 0x100249c7
mov eax, dword [ebp - 0x78]
test eax, eax
js 0x100249ab
lea eax, [eax + eax*2]
movsx ecx, byte [ebp + eax*8 - 0x54]
mov eax, dword [ebp - 0x70]
lea edx, [ebp - 0x58]
lea eax, [eax + eax*2]
lea edx, [edx + eax*8]
call fcn.100238f0
mov edi, dword [0x1006e81c]
mov dword [ebp - 0x68], eax
jmp 0x100249ca
mov edi, dword [ebp - 0x60]
mov ecx, dword [0x1006e7ec]
xor edx, edx
mov dword [ebp - 0x78], edx
cmp dword [ebp - 0x64], edx
jle 0x10024cb2
lea eax, [ebp - 0x50]
mov dword [ebp - 0x5c], eax
nop dword [eax]
nop dword [eax + eax]
mov edx, dword [ebp + edx*4 - 0x10]
test edx, 0x21f000
je 0x10024c9c
mov eax, edx
or eax, 0x11000
cmp eax, 0x1d000
jne 0x10024ab0
test ebx, ebx
jne 0x10024a20
mov edx, 0x1000
jmp 0x10024abb
cmp ebx, 1
jne 0x10024a2f
mov edx, 0x4000
jmp 0x10024abb
cmp ebx, 2
je 0x10024aa9
test edx, 0x10000
je 0x10024aa9
mov edx, 0x10000
mov eax, dword [ebp - 0x5c]
test edx, 0x3000
je 0x10024acd
cmp dword [0x10071698], 0
mov edx, dword [eax]
mov dword [ebp - 0x6c], edx
jne 0x10024c9c
mov edx, dword [ecx + 0x36c]
lea eax, [edi + 1]
mov dword [ebp - 0x70], eax
cmp eax, dword [edx + 8]
jbe 0x10024a8c
mov ecx, dword [ecx + 0x36c]
mov edx, eax
call fcn.1001c470
mov edi, dword [0x1006e81c]
mov ecx, dword [0x1006e7ec]
mov eax, dword [ecx + 0x36c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov byte [edi + eax], dl
mov edi, dword [ebp - 0x70]
mov dword [0x1006e81c], edi
jmp 0x10024c99
mov edx, 0x8000
jmp 0x10024a41
mov dword [ebp - 0x7c], edx
test edx, 0x7000
je 0x10024a41
mov eax, dword [ebp - 0x5c]
cmp dword [eax + 8], 0
jne 0x10024e12
jmp 0x10024a44
test edx, 0x4000
je 0x10024ae1
mov ecx, dword [eax]
call fcn.1001f3a0
jmp 0x10024c8d
test edx, 0x10000
je 0x10024b89
mov esi, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x7c], eax
test eax, eax
je 0x10024b77
cmp dword [0x10071698], 0
mov esi, dword [ecx + 0x36c]
mov dword [ebp - 0x60], esi
mov esi, dword [ebp - 0x74]
jne 0x10024b5a
cmp dword [eax + 8], 0
jne 0x10024b3f
push ecx
push 0
push 0
push 0
xor edx, edx
mov ecx, eax
call fcn.1000b100
mov ecx, dword [0x1006e7ec]
add esp, 0x10
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x70]
push dword [ebp - 0x6c]
mov ecx, dword [ecx + 0x378]
push edx
push dword [eax + 8]
mov edx, dword [ebp - 0x60]
push 1
push edi
call fcn.1001ccf0
add esp, 0x14
xorps xmm0, xmm0
movlpd qword [ebp - 0x80], xmm0
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
push eax
push edx
call fcn.1001f570
add esp, 8
jmp 0x10024c8d
mov eax, dword [ebp - 0x6c]
push eax
push edx
call fcn.1001f570
add esp, 8
jmp 0x10024c8d
mov ecx, dword [ebp - 0x78]
mov cl, byte [esi + ecx + 7]
cmp cl, 0x1d
je 0x10024ba6
cmp cl, 0x1e
je 0x10024ba6
mov ecx, eax
call fcn.10023810
jmp 0x10024c8d
mov eax, dword [eax + 8]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x10024c10
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10024bfc
mov edx, dword [0x1006e7ec]
lea ecx, [ecx + ecx*2]
mov eax, dword [edx + 0x378]
mov eax, dword [eax + 4]
lea eax, [eax + ecx*8]
mov dword [ebp - 0x7c], eax
test eax, eax
je 0x10024bf9
movzx ecx, word [eax + 6]
mov eax, dword [edx + 0x36c]
cmp ecx, dword [eax + 0x14]
jne 0x10024bf9
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 8]
mov eax, dword [edx]
sub ecx, edi
add eax, 0xfffffffc
add ecx, eax
jmp 0x10024c88
mov eax, dword [ebp - 0x6c]
cmp dword [eax + 0x10], 0
jne 0x10024c10
mov dword [eax + 0x10], 6
mov dword [eax + 0x14], 0
cmp dword [0x10071698], 0
mov ecx, dword [0x1006e7ec]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x70], 0
mov esi, dword [ecx + 0x36c]
mov edx, dword [edx]
mov dword [ebp - 0x60], esi
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x7c], edx
jne 0x10024c86
test eax, eax
je 0x10024c69
cmp dword [eax + 8], 0
jne 0x10024c63
push ecx
push 0
push 0
push 0
xor edx, edx
mov ecx, eax
call fcn.1000b100
mov ecx, dword [0x1006e7ec]
add esp, 0x10
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x7c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x70], eax
mov ecx, dword [ecx + 0x378]
lea eax, [edx - 4]
cdq
push edx
mov edx, dword [ebp - 0x60]
push eax
push dword [ebp - 0x70]
push 2
push edi
call fcn.1001ccf0
add esp, 0x14
xor ecx, ecx
call fcn.1001f440
mov edi, dword [0x1006e81c]
mov ecx, dword [0x1006e7ec]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x78]
add eax, 0x18
inc edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x78], edx
cmp edx, dword [ebp - 0x64]
jl 0x100249f0
mov ebx, dword [ebp - 0x68]
test ebx, ebx
je 0x10024cff
mov eax, dword [ecx + 0x36c]
mov edx, dword [eax + 4]
movzx eax, byte [edx + ebx - 2]
add edx, ebx
movzx ecx, byte [edx - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx - 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx - 4]
shl ecx, 8
or ecx, eax
sub ecx, edi
add ecx, ebx
mov eax, ecx
mov byte [edx - 4], cl
shr ecx, 0x10
shr eax, 8
mov byte [edx - 2], cl
shr ecx, 8
mov byte [edx - 3], al
mov byte [edx - 1], cl
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1002fab8
mov esp, ebp
pop ebp
ret
movzx ebx, word [edi*2 + str.__start]
test ebx, 0xff00
je 0x10024d6f
cmp dword [0x10071698], 0
jne 0x10024cff
mov edx, dword [0x1006e7ec]
mov edi, dword [0x1006e81c]
mov ecx, dword [edx + 0x36c]
lea esi, [edi + 1]
cmp esi, dword [ecx + 8]
jbe 0x10024d56
mov edx, esi
call fcn.1001c470
mov edx, dword [0x1006e7ec]
mov edi, dword [0x1006e81c]
mov eax, dword [edx + 0x36c]
mov ecx, ebx
shr ecx, 8
mov dword [0x1006e81c], esi
mov eax, dword [eax + 4]
mov byte [edi + eax], cl
jmp 0x10024d7b
mov edx, dword [0x1006e7ec]
mov esi, dword [0x1006e81c]
cmp dword [0x10071698], 0
jne 0x10024cff
mov ecx, dword [edx + 0x36c]
lea edi, [esi + 1]
cmp edi, dword [ecx + 8]
jbe 0x10024da9
mov edx, edi
call fcn.1001c470
mov edx, dword [0x1006e7ec]
mov esi, dword [0x1006e81c]
mov eax, dword [edx + 0x36c]
mov ecx, dword [ebp - 4]
mov dword [0x1006e81c], edi
xor ecx, ebp
pop edi
mov eax, dword [eax + 4]
mov byte [esi + eax], bl
pop esi
pop ebx
call fcn.1002fab8
mov esp, ebp
pop ebp
ret
xor edx, edx
mov ecx, edi
call fcn.100019a0
push eax
push str.bad_operand_with_opcode__s
call fcn.1002c510
push str.segment_prefix_must_be_followed_by_memory_reference
call fcn.1002c510
push str.incorrect_prefix
call fcn.1002c510
push str.incorrect_number_of_operands
call fcn.1002c510
push str.cannot_infer_opcode_suffix
call fcn.1002c510
push str.invalid_displacement
call fcn.1002c510
push str.cannot_relocate
call fcn.1002c510
lea eax, [esi + 0x1c]
push eax
push str.unknown_opcode__s
call fcn.1002c510
nop
aad 0x40
add dl, byte [eax]
fadd qword [eax + 2]
adc bl, ah
inc eax
add dl, byte [eax]
ljmp 0x240